Skip to content

Instantly share code, notes, and snippets.

@sweeneyde
Created May 11, 2022 23:19
Show Gist options
  • Select an option

  • Save sweeneyde/32b69bea8f7e15df7bbd9c41eac85f8d to your computer and use it in GitHub Desktop.

Select an option

Save sweeneyde/32b69bea8f7e15df7bbd9c41eac85f8d to your computer and use it in GitHub Desktop.
PyPerformance results from micro-optimizing LOAD_FAST
Benchmark before before2 before3 after after2 after3 more_microoptimizations more_microoptimizations2 more_microoptimizations3
2to3 258 ms 261 ms: 1.01x slower 260 ms: 1.01x slower 258 ms: 1.00x slower not significant 256 ms: 1.01x faster 255 ms: 1.01x faster 256 ms: 1.00x faster 255 ms: 1.01x faster
chameleon 6.34 ms 6.30 ms: 1.01x faster not significant 6.42 ms: 1.01x slower 6.27 ms: 1.01x faster 6.23 ms: 1.02x faster 6.22 ms: 1.02x faster 6.19 ms: 1.03x faster 6.22 ms: 1.02x faster
chaos 71.0 ms 72.4 ms: 1.02x slower 72.9 ms: 1.03x slower not significant not significant not significant not significant 69.0 ms: 1.03x faster not significant
crypto_pyaes 76.3 ms not significant 77.5 ms: 1.02x slower 75.4 ms: 1.01x faster not significant 75.4 ms: 1.01x faster not significant not significant 75.3 ms: 1.01x faster
deltablue 3.76 ms not significant 3.81 ms: 1.01x slower not significant not significant not significant not significant not significant not significant
django_template 37.2 ms not significant not significant not significant 35.5 ms: 1.05x faster not significant 36.4 ms: 1.02x faster 36.5 ms: 1.02x faster not significant
dulwich_log 77.3 ms 77.9 ms: 1.01x slower not significant 76.4 ms: 1.01x faster 76.3 ms: 1.01x faster not significant 76.5 ms: 1.01x faster 75.8 ms: 1.02x faster not significant
fannkuch 372 ms 376 ms: 1.01x slower 376 ms: 1.01x slower 370 ms: 1.01x faster 366 ms: 1.02x faster 367 ms: 1.01x faster 385 ms: 1.03x slower 377 ms: 1.01x slower 379 ms: 1.02x slower
float 71.7 ms 72.5 ms: 1.01x slower not significant not significant 72.3 ms: 1.01x slower 70.8 ms: 1.01x faster not significant not significant 72.2 ms: 1.01x slower
genshi_text 22.4 ms 22.8 ms: 1.02x slower 23.0 ms: 1.03x slower 23.0 ms: 1.03x slower not significant 22.0 ms: 1.02x faster not significant 22.1 ms: 1.01x faster not significant
genshi_xml 58.9 ms 60.2 ms: 1.02x slower 60.7 ms: 1.03x slower 60.7 ms: 1.03x slower 61.4 ms: 1.04x slower not significant 60.7 ms: 1.03x slower not significant 56.5 ms: 1.04x faster
go 137 ms 139 ms: 1.01x slower 139 ms: 1.02x slower 135 ms: 1.01x faster 134 ms: 1.02x faster 133 ms: 1.02x faster 134 ms: 1.02x faster 132 ms: 1.03x faster 133 ms: 1.02x faster
hexiom 6.36 ms 6.57 ms: 1.03x slower 6.42 ms: 1.01x slower 6.27 ms: 1.01x faster 6.25 ms: 1.02x faster 6.24 ms: 1.02x faster not significant 6.30 ms: 1.01x faster 6.32 ms: 1.01x faster
html5lib 63.0 ms not significant not significant not significant 64.6 ms: 1.03x slower not significant not significant not significant not significant
json_dumps 13.1 ms 13.2 ms: 1.01x slower not significant not significant not significant 12.8 ms: 1.02x faster not significant 12.8 ms: 1.03x faster not significant
json_loads 27.9 us not significant not significant 27.1 us: 1.03x faster 26.7 us: 1.05x faster 26.3 us: 1.06x faster 26.3 us: 1.06x faster 26.1 us: 1.07x faster 26.2 us: 1.07x faster
logging_format 7.29 us 7.58 us: 1.04x slower 7.43 us: 1.02x slower 8.04 us: 1.10x slower 7.35 us: 1.01x slower not significant 7.39 us: 1.01x slower 7.37 us: 1.01x slower 7.41 us: 1.02x slower
logging_silent 93.2 ns 98.8 ns: 1.06x slower not significant not significant not significant not significant 89.9 ns: 1.04x faster 91.5 ns: 1.02x faster 91.2 ns: 1.02x faster
logging_simple 6.63 us 6.79 us: 1.02x slower not significant 7.41 us: 1.12x slower not significant 6.54 us: 1.01x faster 6.81 us: 1.03x slower 6.74 us: 1.02x slower 6.71 us: 1.01x slower
mako 9.83 ms 10.1 ms: 1.03x slower 9.89 ms: 1.01x slower 10.9 ms: 1.10x slower not significant 9.61 ms: 1.02x faster 9.47 ms: 1.04x faster 9.43 ms: 1.04x faster 9.47 ms: 1.04x faster
meteor_contest 106 ms 109 ms: 1.02x slower not significant 116 ms: 1.09x slower not significant not significant 107 ms: 1.01x slower not significant 107 ms: 1.01x slower
nbody 87.7 ms 92.0 ms: 1.05x slower 89.7 ms: 1.02x slower 95.5 ms: 1.09x slower 86.3 ms: 1.02x faster 84.9 ms: 1.03x faster 86.4 ms: 1.01x faster not significant not significant
nqueens 80.5 ms 86.2 ms: 1.07x slower 84.1 ms: 1.05x slower 93.6 ms: 1.16x slower 83.6 ms: 1.04x slower 83.1 ms: 1.03x slower 82.7 ms: 1.03x slower 83.9 ms: 1.04x slower 83.4 ms: 1.04x slower
pathlib 19.7 ms 19.4 ms: 1.01x faster 19.3 ms: 1.02x faster 20.3 ms: 1.03x slower not significant 19.3 ms: 1.02x faster 19.2 ms: 1.03x faster 19.2 ms: 1.02x faster 19.3 ms: 1.02x faster
pickle 11.5 us 10.8 us: 1.06x faster not significant not significant not significant 11.8 us: 1.03x slower 12.0 us: 1.04x slower not significant 11.8 us: 1.02x slower
pickle_dict 25.1 us 24.9 us: 1.01x faster 24.4 us: 1.03x faster 26.3 us: 1.05x slower 25.6 us: 1.02x slower 24.9 us: 1.01x faster 25.7 us: 1.02x slower not significant 25.5 us: 1.02x slower
pickle_list 4.13 us not significant not significant 4.31 us: 1.04x slower 4.21 us: 1.02x slower not significant 4.28 us: 1.03x slower 4.29 us: 1.04x slower 4.27 us: 1.03x slower
pickle_pure_python 311 us not significant 314 us: 1.01x slower not significant not significant 308 us: 1.01x faster not significant 302 us: 1.03x faster 308 us: 1.01x faster
pidigits 192 ms 193 ms: 1.01x slower 191 ms: 1.01x faster 185 ms: 1.03x faster 186 ms: 1.03x faster 184 ms: 1.04x faster 183 ms: 1.05x faster 184 ms: 1.04x faster 183 ms: 1.04x faster
pyflate 415 ms 425 ms: 1.02x slower 418 ms: 1.01x slower not significant 424 ms: 1.02x slower not significant 409 ms: 1.01x faster 412 ms: 1.01x faster 410 ms: 1.01x faster
python_startup 8.87 ms 8.95 ms: 1.01x slower 9.02 ms: 1.02x slower not significant not significant 8.80 ms: 1.01x faster 8.80 ms: 1.01x faster not significant 8.79 ms: 1.01x faster
python_startup_no_site 6.61 ms 6.68 ms: 1.01x slower not significant 6.65 ms: 1.01x slower 6.67 ms: 1.01x slower 6.59 ms: 1.00x faster not significant not significant 6.57 ms: 1.01x faster
raytrace 302 ms not significant 296 ms: 1.02x faster 293 ms: 1.03x faster 295 ms: 1.02x faster 290 ms: 1.04x faster 293 ms: 1.03x faster 294 ms: 1.03x faster 287 ms: 1.05x faster
regex_compile 142 ms not significant 141 ms: 1.01x faster not significant 140 ms: 1.02x faster 139 ms: 1.02x faster 139 ms: 1.02x faster 138 ms: 1.03x faster 137 ms: 1.03x faster
regex_dna 193 ms not significant not significant 195 ms: 1.01x slower 197 ms: 1.02x slower 195 ms: 1.01x slower 195 ms: 1.01x slower 195 ms: 1.01x slower 195 ms: 1.01x slower
regex_effbot 2.84 ms 2.87 ms: 1.01x slower 2.79 ms: 1.02x faster 2.80 ms: 1.01x faster not significant 2.82 ms: 1.01x faster not significant not significant 2.78 ms: 1.02x faster
regex_v8 21.7 ms not significant 20.8 ms: 1.04x faster 21.2 ms: 1.02x faster not significant 21.3 ms: 1.02x faster 21.4 ms: 1.01x faster 21.4 ms: 1.01x faster 21.3 ms: 1.01x faster
richards 51.9 ms 53.7 ms: 1.03x slower not significant 48.7 ms: 1.07x faster not significant not significant not significant 50.7 ms: 1.02x faster 49.3 ms: 1.05x faster
scimark_fft 330 ms 349 ms: 1.06x slower 341 ms: 1.04x slower not significant not significant 321 ms: 1.03x faster not significant not significant not significant
scimark_lu 98.8 ms 101 ms: 1.02x slower 101 ms: 1.02x slower not significant 99.9 ms: 1.01x slower 96.8 ms: 1.02x faster not significant 97.2 ms: 1.02x faster 97.4 ms: 1.01x faster
scimark_monte_carlo 65.9 ms not significant 65.1 ms: 1.01x faster 63.9 ms: 1.03x faster 64.1 ms: 1.03x faster 61.9 ms: 1.07x faster 64.2 ms: 1.03x faster 64.2 ms: 1.03x faster 63.2 ms: 1.04x faster
scimark_sor 106 ms 107 ms: 1.01x slower not significant 104 ms: 1.02x faster not significant 105 ms: 1.01x faster 104 ms: 1.02x faster 104 ms: 1.02x faster 103 ms: 1.02x faster
scimark_sparse_mat_mult 4.93 ms not significant not significant not significant 4.78 ms: 1.03x faster 4.74 ms: 1.04x faster not significant not significant not significant
spectral_norm 93.2 ms 95.1 ms: 1.02x slower 91.5 ms: 1.02x faster 88.7 ms: 1.05x faster 91.6 ms: 1.02x faster 89.2 ms: 1.04x faster 90.5 ms: 1.03x faster 91.7 ms: 1.02x faster 90.7 ms: 1.03x faster
sqlite_synth 2.38 us 2.37 us: 1.00x faster 2.36 us: 1.01x faster not significant not significant 2.37 us: 1.01x faster 2.35 us: 1.01x faster 2.34 us: 1.02x faster 2.34 us: 1.02x faster
sympy_expand 516 ms not significant not significant not significant not significant 512 ms: 1.01x faster 514 ms: 1.00x faster 510 ms: 1.01x faster 511 ms: 1.01x faster
sympy_integrate 21.5 ms not significant not significant not significant 22.2 ms: 1.03x slower 21.3 ms: 1.01x faster 21.2 ms: 1.01x faster 21.1 ms: 1.02x faster 21.3 ms: 1.01x faster
sympy_sum 175 ms not significant not significant not significant 177 ms: 1.01x slower 173 ms: 1.01x faster 173 ms: 1.02x faster 172 ms: 1.02x faster 172 ms: 1.02x faster
sympy_str 317 ms not significant 322 ms: 1.02x slower not significant not significant 312 ms: 1.02x faster 314 ms: 1.01x faster 311 ms: 1.02x faster not significant
telco 6.45 ms not significant 6.35 ms: 1.02x faster 6.34 ms: 1.02x faster 6.54 ms: 1.01x slower 6.36 ms: 1.01x faster not significant 6.37 ms: 1.01x faster 6.37 ms: 1.01x faster
tornado_http 171 ms 174 ms: 1.02x slower not significant not significant not significant not significant not significant not significant not significant
unpack_sequence 40.7 ns 42.3 ns: 1.04x slower 41.4 ns: 1.02x slower 43.4 ns: 1.07x slower 41.5 ns: 1.02x slower not significant not significant not significant not significant
unpickle 15.5 us not significant 16.0 us: 1.03x slower not significant not significant 16.1 us: 1.03x slower 14.9 us: 1.04x faster not significant not significant
unpickle_list 4.87 us 4.95 us: 1.02x slower not significant 4.80 us: 1.02x faster 4.93 us: 1.01x slower 4.83 us: 1.01x faster not significant 4.82 us: 1.01x faster 4.80 us: 1.01x faster
unpickle_pure_python 232 us 238 us: 1.02x slower 235 us: 1.01x slower not significant not significant 229 us: 1.01x faster 226 us: 1.03x faster 228 us: 1.02x faster 229 us: 1.01x faster
xml_etree_parse 160 ms 162 ms: 1.01x slower not significant not significant 163 ms: 1.02x slower not significant 162 ms: 1.01x slower 156 ms: 1.03x faster not significant
xml_etree_iterparse 106 ms not significant 105 ms: 1.01x faster not significant not significant 104 ms: 1.03x faster 105 ms: 1.01x faster 103 ms: 1.04x faster 104 ms: 1.02x faster
xml_etree_generate 74.2 ms 76.0 ms: 1.02x slower not significant not significant 75.1 ms: 1.01x slower 73.6 ms: 1.01x faster 73.5 ms: 1.01x faster 73.0 ms: 1.02x faster 72.6 ms: 1.02x faster
xml_etree_process 52.0 ms 53.8 ms: 1.04x slower 52.2 ms: 1.01x slower 52.9 ms: 1.02x slower 52.5 ms: 1.01x slower 51.1 ms: 1.02x faster 51.6 ms: 1.01x faster not significant 50.7 ms: 1.02x faster
Geometric mean (ref) 1.01x slower 1.00x slower 1.01x slower 1.00x slower 1.01x faster 1.01x faster 1.01x faster 1.01x faster
@sweeneyde
Copy link
Copy Markdown
Author

before is dcdf250d2de1428f7d8b4e9ecf51d2fd8200e21a

after is 0ddc721276380fa528287b08544de9ab91122d8b

more_microoptimizations is dea4a839e1b23c9fffa5dae7aa469e4144376ddd

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