Issue42093
Created on 2020-10-20 03:18 by pablogsal, last changed 2020-10-20 05:27 by pablogsal. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 22803 | merged | pablogsal, 2020-10-20 03:19 | |
| Messages (2) | |||
|---|---|---|---|
| msg379083 - (view) | Author: Pablo Galindo Salgado (pablogsal) * ![]() |
Date: 2020-10-20 03:18 | |
From the creators of "opcode cache for LOAD_GLOBAL" (https://bugs.python.org/issue26219) now it's time for "opcode cache for LOAD_ATTR: the revenge". This issue/PR builds on top of Yury's original patch in the same way https://bugs.python.org/issue26219 did for LOAD_GLOBAL. These are the benchmark results for the pyperformance test suite with PGO/LTO/CPU ISOLATION in a tuned system with pyperf: +-------------------------+--------------------------------------+-------------------------------------+ | Benchmark | 2020-10-20_01-18-master-de73d432bb29 | 2020-10-20_02-28-cache-68f931f6938a | +=========================+======================================+=====================================+ | go | 407 ms | 349 ms: 1.17x faster (-14%) | +-------------------------+--------------------------------------+-------------------------------------+ | raytrace | 822 ms | 730 ms: 1.13x faster (-11%) | +-------------------------+--------------------------------------+-------------------------------------+ | unpickle_pure_python | 497 us | 447 us: 1.11x faster (-10%) | +-------------------------+--------------------------------------+-------------------------------------+ | scimark_sor | 311 ms | 280 ms: 1.11x faster (-10%) | +-------------------------+--------------------------------------+-------------------------------------+ | hexiom | 15.4 ms | 14.0 ms: 1.10x faster (-9%) | +-------------------------+--------------------------------------+-------------------------------------+ | logging_silent | 302 ns | 276 ns: 1.10x faster (-9%) | +-------------------------+--------------------------------------+-------------------------------------+ | chaos | 176 ms | 163 ms: 1.08x faster (-7%) | +-------------------------+--------------------------------------+-------------------------------------+ | pyflate | 1.01 sec | 948 ms: 1.06x faster (-6%) | +-------------------------+--------------------------------------+-------------------------------------+ | scimark_lu | 246 ms | 232 ms: 1.06x faster (-6%) | +-------------------------+--------------------------------------+-------------------------------------+ | pickle_pure_python | 712 us | 674 us: 1.06x faster (-5%) | +-------------------------+--------------------------------------+-------------------------------------+ | regex_effbot | 4.49 ms | 4.26 ms: 1.05x faster (-5%) | +-------------------------+--------------------------------------+-------------------------------------+ | scimark_monte_carlo | 160 ms | 153 ms: 1.05x faster (-5%) | +-------------------------+--------------------------------------+-------------------------------------+ | richards | 120 ms | 115 ms: 1.05x faster (-4%) | +-------------------------+--------------------------------------+-------------------------------------+ | 2to3 | 458 ms | 442 ms: 1.04x faster (-4%) | +-------------------------+--------------------------------------+-------------------------------------+ | regex_v8 | 33.7 ms | 32.5 ms: 1.04x faster (-3%) | +-------------------------+--------------------------------------+-------------------------------------+ | scimark_sparse_mat_mult | 7.16 ms | 6.93 ms: 1.03x faster (-3%) | +-------------------------+--------------------------------------+-------------------------------------+ | deltablue | 12.1 ms | 11.7 ms: 1.03x faster (-3%) | +-------------------------+--------------------------------------+-------------------------------------+ | regex_dna | 268 ms | 261 ms: 1.03x faster (-3%) | +-------------------------+--------------------------------------+-------------------------------------+ | meteor_contest | 152 ms | 148 ms: 1.03x faster (-3%) | +-------------------------+--------------------------------------+-------------------------------------+ | genshi_xml | 89.0 ms | 87.1 ms: 1.02x faster (-2%) | +-------------------------+--------------------------------------+-------------------------------------+ | logging_simple | 12.8 us | 12.5 us: 1.02x faster (-2%) | +-------------------------+--------------------------------------+-------------------------------------+ | genshi_text | 42.4 ms | 41.5 ms: 1.02x faster (-2%) | +-------------------------+--------------------------------------+-------------------------------------+ | nbody | 215 ms | 211 ms: 1.02x faster (-2%) | +-------------------------+--------------------------------------+-------------------------------------+ Not significant (35): chameleon; django_template; dulwich_log; fannkuch; float; json_dumps; json_loads; logging_format; mako; nqueens; pathlib; pickle; pickle_dict; pickle_list; pidigits; python_startup; python_startup_no_site; regex_compile; scimark_fft; spectral_norm; sqlalchemy_declarative; sqlalchemy_imperative; sqlite_synth; sympy_expand; sympy_sum; sympy_str; telco; tornado_http; unpack_sequence; unpickle; unpickle_list; xml_etree_parse; xml_etree_iterparse; xml_etree_generate; xml_etree_process; sympy_integrate |
|||
| msg379087 - (view) | Author: Pablo Galindo Salgado (pablogsal) * ![]() |
Date: 2020-10-20 05:22 | |
New changeset 109826c8508dd02e06ae0f1784f1d202495a8680 by Pablo Galindo in branch 'master': bpo-42093: Add opcode cache for LOAD_ATTR (GH-22803) https://github.com/python/cpython/commit/109826c8508dd02e06ae0f1784f1d202495a8680 |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2020-10-20 05:27:36 | pablogsal | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2020-10-20 05:22:52 | pablogsal | set | messages: + msg379087 |
| 2020-10-20 03:31:21 | pablogsal | set | nosy:
+ yselivanov |
| 2020-10-20 03:19:20 | pablogsal | set | keywords:
+ patch stage: patch review pull_requests: + pull_request21760 |
| 2020-10-20 03:18:36 | pablogsal | create | |
