Open wangyi041228 opened 2 years ago
You should write the result into a JSON file, and then analyze the data: https://pyperf.readthedocs.io/en/latest/analyze.html
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.
cc @cfbolz @corona10
See also issues like #128
Thanks for your guide. I'll learn more about Python and 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: