classification
Title: Compute allocated blocks in _Py_GetAllocatedBlocks()
Type: Stage:
Components: Interpreter Core Versions:
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: nascheme, tim.peters
Priority: normal Keywords: patch

Created on 2019-07-10 06:27 by nascheme, last changed 2019-07-10 19:04 by nascheme.

Pull Requests
URL Status Linked Edit
PR 14680 merged nascheme, 2019-07-10 06:30
Messages (3)
msg347602 - (view) Author: Neil Schemenauer (nascheme) * (Python committer) Date: 2019-07-10 06:27
This is a small but measurable optimization for _PyObject_Malloc and _PyObject_Free.  It slows down _Py_GetAllocatedBlocks a bit but I think that's a price worth paying.
msg347603 - (view) Author: Neil Schemenauer (nascheme) * (Python committer) Date: 2019-07-10 06:34
PyPerformance result, using --enable-optimizations

+-------------------------+---------+------------------------------+
| Benchmark               | base    | no-allocated                 |
+=========================+=========+==============================+
| 2to3                    | 388 ms  | 385 ms: 1.01x faster (-1%)   |
+-------------------------+---------+------------------------------+
| dulwich_log             | 91.8 ms | 92.8 ms: 1.01x slower (+1%)  |
+-------------------------+---------+------------------------------+
| go                      | 302 ms  | 296 ms: 1.02x faster (-2%)   |
+-------------------------+---------+------------------------------+
| hexiom                  | 11.4 ms | 11.5 ms: 1.01x slower (+1%)  |
+-------------------------+---------+------------------------------+
| json_dumps              | 14.0 ms | 13.7 ms: 1.02x faster (-2%)  |
+-------------------------+---------+------------------------------+
| logging_format          | 12.1 us | 11.9 us: 1.02x faster (-2%)  |
+-------------------------+---------+------------------------------+
| logging_simple          | 10.9 us | 10.6 us: 1.02x faster (-2%)  |
+-------------------------+---------+------------------------------+
| pickle_dict             | 23.6 us | 21.3 us: 1.11x faster (-10%) |
+-------------------------+---------+------------------------------+
| pidigits                | 208 ms  | 210 ms: 1.01x slower (+1%)   |
+-------------------------+---------+------------------------------+
| python_startup          | 9.73 ms | 9.66 ms: 1.01x faster (-1%)  |
+-------------------------+---------+------------------------------+
| python_startup_no_site  | 6.70 ms | 6.66 ms: 1.01x faster (-1%)  |
+-------------------------+---------+------------------------------+
| regex_dna               | 199 ms  | 195 ms: 1.02x faster (-2%)   |
+-------------------------+---------+------------------------------+
| regex_effbot            | 3.18 ms | 3.14 ms: 1.01x faster (-1%)  |
+-------------------------+---------+------------------------------+
| regex_v8                | 25.0 ms | 24.4 ms: 1.02x faster (-2%)  |
+-------------------------+---------+------------------------------+
| scimark_fft             | 421 ms  | 426 ms: 1.01x slower (+1%)   |
+-------------------------+---------+------------------------------+
| scimark_sor             | 220 ms  | 223 ms: 1.01x slower (+1%)   |
+-------------------------+---------+------------------------------+
| scimark_sparse_mat_mult | 5.18 ms | 5.33 ms: 1.03x slower (+3%)  |
+-------------------------+---------+------------------------------+
| spectral_norm           | 159 ms  | 156 ms: 1.02x faster (-2%)   |
+-------------------------+---------+------------------------------+
| unpickle                | 14.6 us | 14.2 us: 1.02x faster (-2%)  |
+-------------------------+---------+------------------------------+
| unpickle_list           | 4.46 us | 4.33 us: 1.03x faster (-3%)  |
+-------------------------+---------+------------------------------+
| xml_etree_iterparse     | 141 ms  | 139 ms: 1.01x faster (-1%)   |
+-------------------------+---------+------------------------------+

Not significant (36): chaos; crypto_pyaes; deltablue; django_template; fannkuch; float; html5lib; json_loads; logging_silent; mako; meteor_contest; nbody; nqueens; pathlib; pickle; pickle_list; pickle_pure_python; raytrace; regex_compile; richards; scimark_lu; scimark_monte_carlo; sqlalchemy_declarative; sqlalchemy_imperative; sqlite_synth; sympy_expand; sympy_integrate; sympy_sum; sympy_str; telco; tornado_http; unpack_sequence; unpickle_pure_python; xml_etree_parse; xml_etree_generate; xml_etree_process
msg347635 - (view) Author: Neil Schemenauer (nascheme) * (Python committer) Date: 2019-07-10 19:04
New changeset 5d25f2b70351fc6a56ce5513ccf5f58556c18837 by Neil Schemenauer in branch 'master':
bpo-37537: Compute allocated blocks in _Py_GetAllocatedBlocks() (#14680)
https://github.com/python/cpython/commit/5d25f2b70351fc6a56ce5513ccf5f58556c18837
History
Date User Action Args
2019-07-10 19:04:39naschemesetmessages: + msg347635
2019-07-10 14:51:55tim.peterssetnosy: + tim.peters
2019-07-10 06:34:12naschemesetmessages: + msg347603
stage: patch review ->
2019-07-10 06:30:32naschemesetkeywords: + patch
stage: patch review
pull_requests: + pull_request14486
2019-07-10 06:27:59naschemecreate