Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.