|
|
|
|
|
by Zsfe510asG
243 days ago
|
|
Accessing a global object as the most simple benchmark that in fact exercises the locks still shows a massive slowdown that is not offset by the moderate general speedups since 3.9: x = 0
def f():
global x
for i in range(100000000):
x += i
f()
print(x)
Results: 3.9: 7.1s
3.11: 5.9s
3.14: 6.5s
3.14-nogil: 8.4s
That is a NOGIL slowdown of 18% compared to 3.9, 44% compared to 3.11 and 30% compared to 3.14. These numbers are in line with previous attempts at GIL removal that were rejected because they didn't come from Facebook.Please do not complain about the global object. Using a pure function would obviously be a useless benchmark for locking and real world Python code bases have far more intricate access patterns. |
|
Just because there's a lot of shit Python code out there, doesn't mean people who want to write clean, performant Python code should suffer for it.