You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changed
Darwin empty_chunk_retain 8 MB → 512 KB: Aggressive MADV_FREE_REUSABLE reclaim on Darwin. Kemal RSS drops from ~160 MiB to ~18 MiB (1.04× Boehm). ACIKTURKIYE RSS unchanged (~700 MiB); conservative live set remains the dominant driver.
scrub_fibers_enabled = true (Linux + macOS): Default-on fiber stack scrubbing to reduce false roots from parked fiber stacks. Linux: Kemal RSS 0.99×→0.95×, acikturkiye RSS 3.00×→2.65×. macOS: ACIKTURKIYE RSS steady at ~700 MiB (conservative live set dominant). Opt-out via GCRY_DISABLE_SCRUB_FIBERS=1.
Darwin gc_threshold 32 MB → 16 MB: More frequent major collections on Darwin; pause halved (47→25 ms p50) on ACIKTURKIYE.
Darwin small_chunk_bytes 128 KiB → 256 KiB: The 128 KiB chunk inflated collection count (~290 majors in 30s) and crushed acikturkiye throughput to ~57% Boehm. 256 KiB recovers throughput to ~78% without meaningful Kemal RSS cost (1.06× vs 0.88×). Set in gc_override.cr for Darwin only; library default stays 128 KiB. Escape: GCRY_CHUNK_BYTES=131072.
Added
Darwin large-freelist MADV_FREE_REUSABLE:darwin_release_large_freelist_pages issues MADV_FREE_REUSABLE for every cached large-object chunk after major collection on Darwin, dropping physical pages without unmapping. Linux unchanged (mmap-resident for cache budget).