python / python/pyperformance

Add additional GC related benchmark

Open
#437 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1k
Forks
203
Avg merge
1h 20m
Merged PRs (30d)
2

Description

Given this performance regression in Python 3.14, it would be nice if we had a benchmark which would have more clearly shown it before final release. I have a new GC specific benchmark but it doesn't do things that would show this regression.

We should consider adding a new benchmark. The key features would be:

  • creating a bunch of net new container objects, in order to trigger many, potentially young generation, collections
  • creating tuple objects that can be untracked by the GC, in order to avoid slowing down full collections

Ideally we prefer to avoid a micro or synthetic benchmark and instead find some kind of real application that shows this regression. E.g. near the 3.13 release, we found a GC regression shown by Sphinx building Python docs. Something like that would be good.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the linked Python 3.14 performance regression and the existing GC-specific benchmark in pull request 381 first. Investigate a real application benchmark, rather than a synthetic microbenchmark, that creates many new container objects and untrackable tuples and exposes the regression; done means the benchmark clearly shows this behavior before release.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.