[pypy-dev] pypy jit

Jacob Hallén jacob at openend.se
Wed Feb 2 15:07:54 CET 2011


onsdag 02 februari 2011 03.09.09 skrev  Łukasz Ligowski:
> 
> I'd like to ask are there any rules of thumb to write code that PyPy JIT
> can easily optimize? Or maybe which constructs are hardly optimizable by
> JIT so it's better to avoid them?

If you want absolutely best performance, write your code in a simple, straight 
forward way, trying to keep your most used loops free of branches.

if a:
    for x in range(big number):
        calculate something
else:
    for x in range(big number):
        calculate something else

generates better code than

for x in range(big number):
    if a:
        calculate something
    else:
        caculate something else

In the second case, there will be a guard inside the loop that has to be 
evaluated every time through.

Jacob Hallén



More information about the Pypy-dev mailing list