Some more numbers: I took guile22-experiment and removed the following: * GC_set_free_space_divisor, * GC_INITIAL_HEAP_SIZE=40M * heap growing in Score_engraver
This gives me: ~2m30s (although I saw one run in 1m55s?!?) GC_INITIAL_HEAP_SIZE=40M: ~2m10s (one run in 1m40s) GC_FREE_SPACE_DIVISOR=1: very diverse - from ~1m10s (2 executions) to ~2m40s (3 executions) GC_NPROCS=1: from ~1m45s to ~2m10s This variation makes any statement about performance impractical. I tried taskset -c 2 + GC_NPROCS=1: ~2m10s and it seems stable, but I have yet to build a theory why OS thread migration actually improves performance... Han-Wen, did you see similar variations in your experiments? https://codereview.appspot.com/561390043/