Skip to content

GC nursery: prototype copying minor collector with wholesale reset #1095

Description

@andrewtdiz

Parent: #1090
Requested assignee: @andrewtdiz

Problem

Minor GC still pays sweep, age-bump, block-persistence, and reset/deallocation costs. The structural win is copying live young objects and resetting nursery pages wholesale.

Context

Prototype a copying young-generation collector with young from-space/to-space or an evacuation buffer. Minor GC should copy live young roots and dirty-page children, rewrite mutable slots, promote survivors when needed, and reset nursery allocation space wholesale.

Target invariant:

minor GC cost = live young objects + dirty old cards/pages + mutable roots

Verification

  • Minor pause scales with live young bytes, not dead nursery allocation volume
  • bench_gc_pressure pause time decreases
  • object_create and binary_trees do not regress
  • perf-comprehensive has no mid-round GC outliers
  • Memory stability suite passes in copying-nursery mode

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions