Skip to content

Instantly share code, notes, and snippets.

@nascheme
Last active April 13, 2026 21:59
Show Gist options
  • Select an option

  • Save nascheme/457b1fbb2091b893bbf840cecb80ddf2 to your computer and use it in GitHub Desktop.

Select an option

Save nascheme/457b1fbb2091b893bbf840cecb80ddf2 to your computer and use it in GitHub Desktop.
This is 3.14 branch with https://github.com/python/cpython/pull/142001 applied
Benchmark script: https://gist.github.com/nascheme/6d09885d3696055b9665d3b88c7aacaa
inc_gc OFF (0) vs ON (1) comparison
cycle extra live t0(s) t1(s) Δt% rss0 rss1 Δrss% trash0 trash1
--------------------------------------------------------------------------------------------------
10 0 100 0.65 0.75 +16.3 16M 17M +2 6k 11k
10 0 1.0k 0.68 0.78 +14.3 17M 19M +11 14k 54k
10 0 10.0k 0.76 0.89 +17.8 20M 22M +10 88k 138k
10 1.0k 100 0.73 0.80 +10.1 16M 18M +6 6k 11k
10 1.0k 1.0k 0.77 0.85 +10.0 18M 24M +34 14k 54k
10 1.0k 10.0k 0.84 0.95 +12.2 28M 36M +28 88k 138k
10 10.0k 100 0.77 0.85 +10.2 19M 27M +41 6k 11k
10 10.0k 1.0k 0.86 1.01 +17.7 29M 70M +143 14k 54k
10 10.0k 10.0k 1.18 1.30 +9.8 97M 154M +59 88k 138k
10 100.0k 100 1.87 2.02 +8.4 57M 122M +113 6k 11k
10 100.0k 1.0k 2.69 2.70 +0.3 127M 535M +322 14k 54k
10 100.0k 10.0k 4.04 4.05 +0.3 848M 1.3G +57 88k 138k
100 0 100 0.51 0.56 +9.5 16M 17M +2 6k 14k
100 0 1.0k 0.56 0.59 +5.3 17M 19M +11 15k 56k
100 0 10.0k 0.64 0.66 +2.5 20M 22M +10 88k 138k
100 1.0k 100 0.51 0.57 +12.1 16M 17M +2 6k 14k
100 1.0k 1.0k 0.54 0.59 +8.9 17M 19M +13 15k 56k
100 1.0k 10.0k 0.60 0.67 +11.2 21M 24M +12 88k 138k
100 10.0k 100 0.54 0.60 +11.0 17M 18M +8 6k 14k
100 10.0k 1.0k 0.56 0.61 +8.8 18M 24M +33 15k 56k
100 10.0k 10.0k 0.65 0.71 +10.8 27M 35M +29 88k 138k
100 100.0k 100 1.14 0.88 -23.1 19M 27M +45 6k 14k
100 100.0k 1.0k 0.67 0.78 +15.0 29M 72M +147 15k 56k
100 100.0k 10.0k 0.88 0.99 +12.8 98M 152M +55 88k 138k
1.0k 0 100 0.52 0.54 +4.8 18M 20M +12 23k 74k
1.0k 0 1.0k 0.52 0.54 +3.3 18M 20M +12 23k 74k
1.0k 0 10.0k 0.59 0.61 +4.5 21M 23M +11 93k 142k
1.0k 1.0k 100 0.56 0.56 -0.6 18M 20M +12 23k 74k
1.0k 1.0k 1.0k 0.57 0.55 -2.9 18M 20M +12 23k 74k
1.0k 1.0k 10.0k 0.62 0.64 +3.5 21M 23M +11 93k 142k
1.0k 10.0k 100 0.57 0.62 +8.5 18M 20M +15 23k 74k
1.0k 10.0k 1.0k 0.52 0.55 +4.7 18M 20M +15 23k 74k
1.0k 10.0k 10.0k 0.60 0.66 +10.8 21M 24M +13 93k 142k
1.0k 100.0k 100 0.58 0.57 -2.8 20M 27M +35 23k 74k
1.0k 100.0k 1.0k 0.61 0.63 +2.3 19M 26M +38 23k 74k
1.0k 100.0k 10.0k 0.61 0.63 +4.2 29M 36M +25 93k 142k
Legend
------
Comparison table (inc_gc OFF vs ON, same cycle/extra/live):
cycle objects per reference cycle (--cycle-size)
extra extra bytes payload per cycle (--extra-bytes)
live live-object target before holder is cleared (--live-objects)
t0 / t1 total time(s) with inc_gc=0 / inc_gc=1
Δt% percent change in time, (t1 - t0) / t0 * 100
rss0/rss1 peak RSS with inc_gc=0 / inc_gc=1
Δrss% percent change in peak RSS, (rss1 - rss0) / rss0 * 100
trash0/1 max uncollected cyclic-garbage with inc_gc=0 / inc_gc=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment