For what it's worth, I tracked down that nutso variability of the older Nim GC 
to massive amounts of memory use that led to swapping to NVMe.

Lifting the inner most part (`worst...pushMsg`) into its own `proc` and calling 
it made things more controlled with only order 15..20% standard deviation/means 
w/o the swapping. Even this situation still used close to 1000X the memory than 
with `--gc:arc` (26 GB vs 32 MB when running with -m20). With or w/o 
`-d:useRealTimeGC`, with `-d:release` or `-d:danger` and with or w/o setting 
max pause times.

Maybe this is some known issue with the old GC that this test program was 
designed to stress? There is some full disable GC code in there. Or maybe I 
messed something up. I would think it is pretty easy to reproduce. 
`/usr/bin/time` can give you the RSS. Makes `--gc:arc` seem that much more 
important.

Reply via email to