[pypy-dev] PGO Optimized Binary

Singh, Yashwardhan yashwardhan.singh at intel.com
Mon Oct 31 17:28:49 EDT 2016


Hi All,

We applied compiler assisted optimization technique called PGO or Profile Guided Optimization while building PyPy, and found performance got improved by up to 22.4% on the Grand Unified Python Benchmark (GUPB) from “hg clone https://hg.python.org/benchmarks”.  The below result table shows majority of 51 micros got performance boost with 8 got performance regression.

Benchmark       Baseline        PGO
        Perf Delta %
hg_startup      0.0160  0.0124  22.4
2to3    6.1157  5.1978  15.0
html5lib        4.9263  4.1961  14.8
formatted_logging       0.0463  0.0399  13.9
regex_v8        0.1394  0.1206  13.5
simple_logging  0.0328  0.0289  11.9
html5lib_warmup 2.5411  2.2939  9.7
bzr_startup     0.0686  0.0621  9.6
unpack_sequence 0.0001  0.0001  8.6
normal_startup  0.8694  0.7983  8.2
regex_compile   0.0707  0.0657  7.0
json_load       0.2924  0.2734  6.5
fastpickle      1.7315  1.6290  5.9
tornado_http    0.0707  0.0665  5.8
pickle_list     1.8614  1.7897  3.9
slowunpickle    0.0260  0.0250  3.8
slowpickle      0.0336  0.0323  3.7
telco   0.0194  0.0187  3.7
pathlib 0.0171  0.0165  3.2
go      0.1069  0.1036  3.1
slowspitfire    0.2624  0.2547  2.9
etree_generate  0.1037  0.1008  2.8
silent_logging  0.0000  0.0000  2.8
pickle_dict     3.2698  3.1796  2.8
spambayes       0.0581  0.0566  2.6
startup_nosite  0.5691  0.5549  2.5
chameleon_v2    2.7629  2.7009  2.2
etree_parse     0.5610  0.5505  1.9
etree_process   0.0725  0.0712  1.9
regex_effbot    0.0377  0.0371  1.7
fastunpickle    0.8521  0.8382  1.6
float   0.0171  0.0169  0.9
pidigits        0.3833  0.3801  0.8
call_method_unknown     0.0123  0.0122  0.6
hexiom2 15.8354 15.7533 0.5
etree_iterparse 0.2102  0.2094  0.4
chaos   0.0089  0.0088  0.2
spectral_norm   0.0099  0.0099  0.2
call_simple     0.0102  0.0102  0.1
mako_v2 0.0204  0.0204  0.1
fannkuch        0.2262  0.2260  0.1
unpickle_list   0.6448  0.6449  0.0
call_method_slots       0.0106  0.0106  0.0
call_method     0.0106  0.0106  -0.1
raytrace        0.0210  0.0210  -0.2
richards        0.0042  0.0043  -1.6
json_dump_v2    0.9288  0.9501  -2.3
django_v3       0.0551  0.0570  -3.4
meteor_contest  0.0984  0.1021  -3.8
nbody   0.0446  0.0463  -3.8
nqueens 0.0498  0.0525  -5.4


        Average 3.6


We’d like to get some input on how to contribute our optimization recipe to the PyPy dev tree, perhaps by creating an item to the PyPy issue tracker?   In addition, we would also appreciate any other benchmark or real world use based workload as alternatives to evaluate this.

Thanks,
Yash
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20161031/7108130b/attachment.html>


More information about the pypy-dev mailing list