
On 2019-06-21, Tim Peters wrote:
[Thomas Wouters thomas@python.org]
Getting rid of address_in_range sounds like a nice idea, and I would love to test how feasible it is -- I can run such a change against a wide selection of code at work, including a lot of third-party extension modules, but I don't see an easy way to do it right now.
Neil's branch is here:
https://github.com/nascheme/cpython/tree/obmalloc_radix_tree
If you can test vs some real-world programs, that would be great. I was trying to run some tests this afternoon. Testing with Python 3.8+ is a pain because of the PyCode_New and tp_print changes. I've just added two fixes to the head of the obmalloc_radix_tree branch so that you can compile code generated by old versions of Cython. Without those fixes, building 3rd party extensions can be a real pain.
My PR uses 16K pools and 1M arenas, quadrupling the status quo. Because "why not?" ;-)
Neil's branch has _generally_, but not always, used 16 MiB arenas. The larger the arenas in his branch, the smaller the radix tree needs to grow.
Currently I have it like your big pool branch (16 KB, 1MB).