top | item 41019626

Python-3.13 is more than 100% slower with –disable-gil

8 points| rbenchmark | 1 year ago

Python-3.13.0b3 is over 100% slower with --disable-gil compared to --enable-gil.

Benchmark:

  sum = 0.0

  def f():
      global sum
      for i in range(10000):
          for j in range(10000):
              sum += i*j
      return sum


  print(f())
Build A: ./configure --enable-gil: 8 seconds

Build B: ./configure --disable-gil: 20 seconds

6 comments

order

rbanffy|1 year ago

Won't this be the almost worst possible case imaginable for this?

lambdaone|1 year ago

Absolutely. Global variables are always going to need some sort of arbitration mechanism, and this is doing it in the innermost loop. Even if there's only one thread, something needs to find that out. I'm surprised it's only half the speed.

lakrman|1 year ago

No, with sum moved into the function I get 6s for --enable-gil and 15.5s for --disable-gil on my machine, which is in the same order.

As an added bonus, the stock Debian Python 3.7 is faster than both versions.

So the alleged "faster python" promises are not kept, and neither are the "at most 15% slowdown" promises for the no-gil project.