Skip to content

v0.0.14: GC throughput under churn

Choose a tag to compare

@ianm199 ianm199 released this 29 May 16:23
· 162 commits to main since this release

Fixes the GC-active half of #38.

After each collection the next threshold was live_bytes * pause/100. In a tight allocation loop the live set is near zero, so the threshold collapsed toward zero and a full stop-the-world collection fired every few allocations, re-tracing all roots each time. The post-collection threshold is now floored at 256 KB.

  • gc_pressure benchmark: ~118x reference C -> ~1.7x
  • allocation churn (GC on): 4.09 -> 0.22 us/alloc
  • collectgarbage("count") now reports real heap sizes

Together with v0.0.13 (O(1) table hash insertion), this closes #38. Validated against the full official Lua 5.4 suite (33/33) and the new scaling/perf gates. No breaking changes.

Still open: #37 (an artificial ~1M-entry table cap surfacing as "not enough memory").