Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mattip
Last active February 7, 2019 20:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattip/d25536cd88ffe0361feca7760745a524 to your computer and use it in GitHub Desktop.
Save mattip/d25536cd88ffe0361feca7760745a524 to your computer and use it in GitHub Desktop.
pypy3utf8 speed comparison to pypy2.7v7.0, pypy3.5v7.0

I ran the python performance suite (not our benchmark suite) 3 times for pypy2, pypy3 v7.0 and pypy3 unicode-utf8

for i in seq 1 3; do pyperformance run --python=$python -o $prefix$i.json; done

python -mperf compare_to pypy3_1.json pypy2_1.json pypy3utf8*.json--min-speed 5 --table

Benchmark pypy2_1 pypy3utf8_1 pypy3utf8_2 pypy3utf8_3
2to3 896 ms 1.36 sec: 1.52x slower (+52%) 1.36 sec: 1.52x slower (+52%) 1.36 sec: 1.51x slower (+51%)
chameleon 3.85 ms not significant 3.62 ms: 1.06x faster (-6%) 3.65 ms: 1.05x faster (-5%)
chaos 3.27 ms 4.32 ms: 1.32x slower (+32%) 4.32 ms: 1.32x slower (+32%) 4.30 ms: 1.31x slower (+31%)
crypto_pyaes 5.62 ms 3.19 ms: 1.76x faster (-43%) 3.35 ms: 1.68x faster (-40%) 3.26 ms: 1.72x faster (-42%)
deltablue 217 us 281 us: 1.30x slower (+30%) 281 us: 1.30x slower (+30%) 282 us: 1.30x slower (+30%)
django_template 17.0 ms 33.1 ms: 1.95x slower (+95%) 33.3 ms: 1.96x slower (+96%) 32.4 ms: 1.91x slower (+91%)
go 41.8 ms 34.5 ms: 1.21x faster (-17%) 34.4 ms: 1.22x faster (-18%) 35.5 ms: 1.18x faster (-15%)
hexiom 1.22 ms 1.33 ms: 1.09x slower (+9%) 1.32 ms: 1.09x slower (+9%) 1.33 ms: 1.09x slower (+9%)
json_dumps 3.70 ms 4.32 ms: 1.17x slower (+17%) 4.32 ms: 1.17x slower (+17%) 4.30 ms: 1.16x slower (+16%)
json_loads 12.2 us 13.6 us: 1.11x slower (+11%) 13.7 us: 1.12x slower (+12%) 13.6 us: 1.11x slower (+11%)
logging_format 2.09 us 8.33 us: 3.99x slower (+299%) 8.42 us: 4.03x slower (+303%) 8.26 us: 3.95x slower (+295%)
logging_simple 1.46 us 6.35 us: 4.35x slower (+335%) 6.31 us: 4.32x slower (+332%) 6.67 us: 4.56x slower (+356%)
meteor_contest 42.8 ms not significant 45.3 ms: 1.06x slower (+6%) 45.2 ms: 1.06x slower (+6%)
nqueens 17.9 ms 20.1 ms: 1.12x slower (+12%) 20.1 ms: 1.12x slower (+12%) 20.1 ms: 1.12x slower (+12%)
pathlib 17.4 ms 11.6 ms: 1.50x faster (-33%) 11.7 ms: 1.48x faster (-33%) 11.6 ms: 1.50x faster (-33%)
pickle 30.7 us 47.2 us: 1.54x slower (+54%) 47.1 us: 1.53x slower (+53%) 46.8 us: 1.53x slower (+53%)
pickle_dict 145 us 265 us: 1.83x slower (+83%) 265 us: 1.83x slower (+83%) 267 us: 1.85x slower (+85%)
pickle_list 20.6 us 31.6 us: 1.53x slower (+53%) 31.2 us: 1.52x slower (+52%) 31.8 us: 1.54x slower (+54%)
pickle_pure_python 30.5 us 47.1 us: 1.54x slower (+54%) 47.2 us: 1.55x slower (+55%) 47.9 us: 1.57x slower (+57%)
pidigits 136 ms 148 ms: 1.09x slower (+9%) 148 ms: 1.09x slower (+9%) 148 ms: 1.09x slower (+9%)
python_startup 13.8 ms 25.0 ms: 1.81x slower (+81%) 25.0 ms: 1.81x slower (+81%) 25.0 ms: 1.81x slower (+81%)
python_startup_no_site 12.9 ms 17.3 ms: 1.34x slower (+34%) 17.3 ms: 1.34x slower (+34%) 17.4 ms: 1.35x slower (+35%)
raytrace 7.38 ms 8.20 ms: 1.11x slower (+11%) 8.18 ms: 1.11x slower (+11%) 8.11 ms: 1.10x slower (+10%)
regex_compile 29.1 ms 25.8 ms: 1.13x faster (-11%) 25.4 ms: 1.15x faster (-13%) 25.6 ms: 1.14x faster (-12%)
regex_effbot 1.51 ms 2.03 ms: 1.34x slower (+34%) 2.02 ms: 1.34x slower (+34%) 2.02 ms: 1.34x slower (+34%)
regex_v8 10.4 ms 15.1 ms: 1.45x slower (+45%) 15.2 ms: 1.46x slower (+46%) 15.2 ms: 1.46x slower (+46%)
scimark_fft 6.25 ms 5.91 ms: 1.06x faster (-5%) 5.88 ms: 1.06x faster (-6%) 5.88 ms: 1.06x faster (-6%)
sympy_expand 103 ms 121 ms: 1.17x slower (+17%) 119 ms: 1.15x slower (+15%) 119 ms: 1.16x slower (+16%)
sympy_integrate 16.4 ms 21.7 ms: 1.33x slower (+33%) 26.6 ms: 1.62x slower (+62%) 24.5 ms: 1.50x slower (+50%)
sympy_sum 51.0 ms 72.5 ms: 1.42x slower (+42%) 69.6 ms: 1.36x slower (+36%) 70.9 ms: 1.39x slower (+39%)
sympy_str 49.9 ms 66.3 ms: 1.33x slower (+33%) 66.1 ms: 1.32x slower (+32%) 66.4 ms: 1.33x slower (+33%)
telco 8.43 ms 60.4 ms: 7.17x slower (+617%) 60.3 ms: 7.15x slower (+615%) 60.1 ms: 7.13x slower (+613%)
tornado_http 139 ms 149 ms: 1.07x slower (+7%) 152 ms: 1.10x slower (+10%) 152 ms: 1.09x slower (+9%)
unpack_sequence 109 ns 88.6 ns: 1.23x faster (-19%) 88.3 ns: 1.23x faster (-19%) 88.0 ns: 1.24x faster (-19%)
unpickle 28.0 us 35.3 us: 1.26x slower (+26%) 35.2 us: 1.25x slower (+25%) 35.2 us: 1.26x slower (+26%)
unpickle_list 10.9 us 14.4 us: 1.32x slower (+32%) 14.2 us: 1.30x slower (+30%) 14.4 us: 1.32x slower (+32%)
unpickle_pure_python 28.3 us 34.9 us: 1.23x slower (+23%) 35.1 us: 1.24x slower (+24%) 35.0 us: 1.23x slower (+23%)

Not significant (14): dulwich_log; fannkuch; float; html5lib; logging_silent; nbody; regex_dna; scimark_lu; scimark_monte_carlo; scimark_sor; scimark_sparse_mat_mult; spectral_norm; sqlalchemy_imperative; sqlite_synth Ignored benchmarks (11) of pypy2_1.json: genshi_text, genshi_xml, hg_startup, mako, pyflate, spambayes, sqlalchemy_declarative, xml_etree_generate, xml_etree_iterparse, xml_etree_parse, xml_etree_process Ignored benchmarks (5) of pypy3utf8_1.json: sqlalchemy_declarative, xml_etree_pure_python_generate, xml_etree_pure_python_iterparse, xml_etree_pure_python_parse, xml_etree_pure_python_process Ignored benchmarks (5) of pypy3utf8_2.json: sqlalchemy_declarative, xml_etree_pure_python_generate, xml_etree_pure_python_iterparse, xml_etree_pure_python_parse, xml_etree_pure_python_process Ignored benchmarks (6) of pypy3utf8_3.json: genshi_text, genshi_xml, xml_etree_pure_python_generate, xml_etree_pure_python_iterparse, xml_etree_pure_python_parse, xml_etree_pure_python_process

Benchmark pypy3.5v7_1 pypy3utf8_1 pypy3utf8_2 pypy3utf8_3
django_template 39.1 ms 33.1 ms: 1.18x faster (-15%) 33.3 ms: 1.17x faster (-15%) 32.4 ms: 1.21x faster (-17%)
dulwich_log 82.0 ms 72.2 ms: 1.14x faster (-12%) 72.9 ms: 1.13x faster (-11%) 72.4 ms: 1.13x faster (-12%)
go 37.6 ms 34.5 ms: 1.09x faster (-8%) 34.4 ms: 1.09x faster (-9%) 35.5 ms: 1.06x faster (-6%)
html5lib 24.5 ms 23.2 ms: 1.06x faster (-5%) 23.2 ms: 1.05x faster (-5%) not significant
json_dumps 4.63 ms 4.32 ms: 1.07x faster (-7%) 4.32 ms: 1.07x faster (-7%) 4.30 ms: 1.08x faster (-7%)
logging_format 2.86 us 8.33 us: 2.91x slower (+191%) 8.42 us: 2.94x slower (+194%) 8.26 us: 2.89x slower (+189%)
logging_simple 2.28 us 6.35 us: 2.79x slower (+179%) 6.31 us: 2.77x slower (+177%) 6.67 us: 2.93x slower (+193%)
pathlib 15.9 ms 11.6 ms: 1.38x faster (-27%) 11.7 ms: 1.36x faster (-27%) 11.6 ms: 1.37x faster (-27%)
pickle 51.2 us 47.2 us: 1.09x faster (-8%) 47.1 us: 1.09x faster (-8%) 46.8 us: 1.09x faster (-9%)
pickle_pure_python 51.5 us 47.1 us: 1.09x faster (-9%) 47.2 us: 1.09x faster (-8%) 47.9 us: 1.08x faster (-7%)
python_startup 27.7 ms 25.0 ms: 1.11x faster (-10%) 25.0 ms: 1.11x faster (-10%) 25.0 ms: 1.11x faster (-10%)
python_startup_no_site 19.0 ms 17.3 ms: 1.10x faster (-9%) 17.3 ms: 1.09x faster (-9%) 17.4 ms: 1.09x faster (-8%)
regex_compile 32.8 ms 25.8 ms: 1.27x faster (-21%) 25.4 ms: 1.29x faster (-23%) 25.6 ms: 1.28x faster (-22%)
regex_effbot 1.52 ms 2.03 ms: 1.34x slower (+34%) 2.02 ms: 1.33x slower (+33%) 2.02 ms: 1.33x slower (+33%)
regex_v8 14.1 ms 15.1 ms: 1.07x slower (+7%) 15.2 ms: 1.07x slower (+7%) 15.2 ms: 1.08x slower (+8%)
sqlalchemy_imperative 39.5 ms 29.6 ms: 1.33x faster (-25%) not significant 29.0 ms: 1.36x faster (-26%)
sympy_integrate 24.6 ms 21.7 ms: 1.13x faster (-12%) 26.6 ms: 1.08x slower (+8%) not significant
sympy_sum 68.4 ms 72.5 ms: 1.06x slower (+6%) not significant not significant
sympy_str 71.5 ms 66.3 ms: 1.08x faster (-7%) 66.1 ms: 1.08x faster (-7%) 66.4 ms: 1.08x faster (-7%)
telco 57.0 ms 60.4 ms: 1.06x slower (+6%) 60.3 ms: 1.06x slower (+6%) 60.1 ms: 1.05x slower (+5%)
unpickle 40.5 us 35.3 us: 1.15x faster (-13%) 35.2 us: 1.15x faster (-13%) 35.2 us: 1.15x faster (-13%)
unpickle_pure_python 41.5 us 34.9 us: 1.19x faster (-16%) 35.1 us: 1.18x faster (-15%) 35.0 us: 1.18x faster (-16%)
xml_etree_pure_python_parse 341 ms 321 ms: 1.06x faster (-6%) 324 ms: 1.05x faster (-5%) 324 ms: 1.05x faster (-5%)
xml_etree_pure_python_process 33.0 ms 34.9 ms: 1.06x slower (+6%) 31.3 ms: 1.06x faster (-5%) 29.3 ms: 1.13x faster (-11%)

Not significant (31): 2to3; chameleon; chaos; crypto_pyaes; deltablue; fannkuch; float; hexiom; json_loads; logging_silent; meteor_contest; nbody; nqueens; pickle_dict; pickle_list; pidigits; raytrace; regex_dna; scimark_fft; scimark_lu; scimark_monte_carlo; scimark_sor; scimark_sparse_mat_mult; spectral_norm; sqlite_synth; sympy_expand; tornado_http; unpack_sequence; unpickle_list; xml_etree_pure_python_iterparse; xml_etree_pure_python_generate Ignored benchmarks (4) of pypy3.5v7_1.json: genshi_text, genshi_xml, mako, sqlalchemy_declarative Ignored benchmarks (1) of pypy3utf8_1.json: sqlalchemy_declarative Ignored benchmarks (1) of pypy3utf8_2.json: sqlalchemy_declarative Ignored benchmarks (2) of pypy3utf8_3.json: genshi_text, genshi_xml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment