Skip to content

Add the 'btree' benchmark. - #381

Merged
nascheme merged 6 commits into
python:mainfrom
nascheme:add_bm_btree
Apr 24, 2026
Merged

Add the 'btree' benchmark.#381
nascheme merged 6 commits into
python:mainfrom
nascheme:add_bm_btree

Conversation

@nascheme

@nascheme nascheme commented Jan 30, 2025

Copy link
Copy Markdown
Member

This adds a new benchmark that's intended to be a better exercise for the cyclic garbage collector, compared with the existing benchmarks in the suite. The intention is to simulate an application that processes a large number of Python objects in memory, with some relatively complex set of references linking them together. The set of objects should a mixture of GC (container) and non-GC objects since that kind of mixture would be typical in many applications. I initially had the NUM_NODES parameter set to 3,000,000. However, in order to keep the running time down and reduce memory usage, I decreased it to 200,000.

I should note that this benchmark doesn't exercise the GC in terms of breaking reference cycles. The create_gc_cycles is kind of a micro benchmark of that. I'd like to add an additional benchmark that more closely simulates an application that creates a bunch of objects but only some of them are cyclic garbage. That would be separate from this PR though.

Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py Outdated
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py Outdated
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py Outdated
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py Outdated
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py Outdated
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py
Comment thread pyperformance/data-files/benchmarks/bm_btree/run_benchmark.py
These were removed to reduce code but they are actually needed by
delete().
@nascheme
nascheme merged commit cd861dc into python:main Apr 24, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

4 participants