def f(): l = [0] for i in range(100000000): l += [2] return l x = f() print(x[0])
3.9: 8.6s 3.14: 8.7s 3.14 (free-threading): 11.6s
3.9: 2.78
3.14: 3.86
3.14t: 3.91
This is a silly benchmark though. Look at pyperformance if you want something that might represent real script/application performance. Generally 3.14t is about 0.9x the performance of the default build. That depends on a lot of things though.
reply
This benchmark demonstrates that global variables are not needed to find severe regressions.
If you don't want to use global variables just add the result of f to x and stop using the global variable, i.e.
x += f()