Oh, do you mean your branch doesn't have headers in each page? https://bugs.python.org/issue32846
As far as I remember, this bug was caused by cache thrashing (page header is aligned by 4K, so cache line can conflict often.) Or this bug can be caused by O(N) free() which is fixed already. I'll see it in next week. On Sat, Jun 15, 2019 at 3:54 AM Neil Schemenauer <nas-pyt...@arctrix.com> wrote: > > I've been working on this idea for a couple of days. Tim Peters has > being helping me out and I think it has come far enough to get some > more feedback. It is not yet a good replacement for the current > address_in_range() test. However, performance wise, it is very > close. Tim figures we are not done optimizing it yet so maybe it > will get better. > > Code is available on my github branch: > > https://github.com/nascheme/cpython/tree/obmalloc_radix_tree > > Tim's "obmalloc-big-pools" is what I have been comparing it to. It > seems 8 KB pools are faster than 4 KB. I applied Tim's arena > trashing fix (bpo-37257) to both branches. Some rough (--fast) > pyperformance benchmark results are below. > > > +-------------------------+---------------------+-----------------------------+ > | Benchmark | obmalloc-big-pools | obmalloc_radix > | > +=========================+=====================+=============================+ > | crypto_pyaes | 168 ms | 170 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | hexiom | 13.7 ms | 13.6 ms: 1.01x faster (-1%) > | > +-------------------------+---------------------+-----------------------------+ > | json_dumps | 15.9 ms | 15.6 ms: 1.02x faster (-2%) > | > +-------------------------+---------------------+-----------------------------+ > | json_loads | 36.9 us | 37.1 us: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | meteor_contest | 141 ms | 139 ms: 1.02x faster (-2%) > | > +-------------------------+---------------------+-----------------------------+ > | nqueens | 137 ms | 140 ms: 1.02x slower (+2%) > | > +-------------------------+---------------------+-----------------------------+ > | pickle_dict | 26.2 us | 25.9 us: 1.01x faster (-1%) > | > +-------------------------+---------------------+-----------------------------+ > | pickle_list | 3.91 us | 3.94 us: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | python_startup_no_site | 8.00 ms | 7.78 ms: 1.03x faster (-3%) > | > +-------------------------+---------------------+-----------------------------+ > | regex_dna | 246 ms | 241 ms: 1.02x faster (-2%) > | > +-------------------------+---------------------+-----------------------------+ > | regex_v8 | 29.6 ms | 30.0 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | richards | 93.9 ms | 92.7 ms: 1.01x faster (-1%) > | > +-------------------------+---------------------+-----------------------------+ > | scimark_fft | 525 ms | 531 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | scimark_sparse_mat_mult | 6.32 ms | 6.24 ms: 1.01x faster (-1%) > | > +-------------------------+---------------------+-----------------------------+ > | spectral_norm | 195 ms | 198 ms: 1.02x slower (+2%) > | > +-------------------------+---------------------+-----------------------------+ > | sqlalchemy_imperative | 49.5 ms | 50.5 ms: 1.02x slower (+2%) > | > +-------------------------+---------------------+-----------------------------+ > | sympy_expand | 691 ms | 695 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | unpickle_list | 5.09 us | 5.32 us: 1.04x slower (+4%) > | > +-------------------------+---------------------+-----------------------------+ > | xml_etree_parse | 213 ms | 215 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | xml_etree_generate | 134 ms | 136 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > | xml_etree_process | 103 ms | 104 ms: 1.01x slower (+1%) > | > +-------------------------+---------------------+-----------------------------+ > > Not significant (34): 2to3; chameleon; chaos; deltablue; > django_template; dulwich_log; fannkuch; float; go; html5lib; > logging_format; logging_silent; logging_simple; mako; nbody; > pathlib; pickle; pidigits; python_startup; raytrace; regex_compile; > regex_effbot; scimark_lu; scimark_monte_carlo; scimark_sor; > sqlalchemy_declarative; sqlite_synth; sympy_integrate; sympy_sum; > sympy_str; telco; unpack_sequence; unpickle; xml_etree_iterparse > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/ZDFEYEC4P5JVRKJL5NIFJ7PZYJYZ3IMR/ -- Inada Naoki <songofaca...@gmail.com> _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/HHIGGO3Q44CM2AICKNP677B5MWOA2BIG/