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
_______________________________________________
pypy-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-dev