You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm learting Python and made some tests. I downloaded and unzipped pypy to a folder. I can't find the proper way to use pyperf with pypy. Can I get the result with JIT?
Code:
# global i, big loop of empty
## pyperf
py -3.10 -m pyperf timeit -s "global i" "for i in range(100_000_000): pass" --rigorous
Mean +- std dev: 1.95 sec +- 0.04 sec
pypy -m pyperf timeit -s "global i" "for i in range(100_000_000): pass" --rigorous
Mean +- std dev: 1.02 sec +- 0.02 sec
### The command
### Can I get the result with JIT?
## timeit
py -3.10 -m timeit -s "global i" "for i in range(100_000_000): pass"
1 loop, best of 5: 2.02 sec per loop
pypy -m timeit -s "global i" "for i in range(100_000_000): pass"
5 loops, average of 7: 46 +- 1.56 msec per loop
pypy --jit off -m timeit -s "global i" "for i in range(100_000_000): pass"
1 loops, average of 7: 6.31 +- 0.0155 sec per loop
The text was updated successfully, but these errors were encountered:
pyperf is now well tuned for JIT compilers. You may have to adjust parameters like --loops and --warmups manually to control if the JIT compiler optimized the code or not.
Measuring performance is a hard problem. Welcome to hell.
I don't know, it does feel a little bit weird that pyperf gives a result that is a factor of 500x slower than timeit? --loops and --warmups shouldn't really come into it here, because the code that is being measured is a loop with 100 million iterations, so even if perf runs that exactly once, the JIT will compile things.
and if I put that code just directly in a file and run it, it takes about 200ms, just like timeit reports.
but in general @wangyi041228, I would try PyPy on some code that a) is not a test suite and b) not a microbenchmark and c) that you actually care about being fast.
I'm learting Python and made some tests. I downloaded and unzipped pypy to a folder. I can't find the proper way to use pyperf with pypy. Can I get the result with JIT?
Code:
The text was updated successfully, but these errors were encountered: