pyperformance icon indicating copy to clipboard operation
pyperformance copied to clipboard

Add the 'btree' benchmark.

Open nascheme opened this issue 11 months ago • 0 comments

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.

nascheme avatar Jan 30 '25 03:01 nascheme