Comment 2 for bug 1204689

Revision history for this message
Andreas Franke (FMC) (andreas-franke) wrote :

Attaching dynamic usage graphs for 5 testcases:
default: gc-stress-parallel.exe --parallel 5 --size 2500 --count 5000 --total 100000
default2: gc-stress-parallel.exe --parallel 5 --size 2500 --count 5000 --total 10000
with-extra-gc: gc-stress-parallel.exe --parallel 5 --size 2500 --count 5000 --with-extra-gc t
with-extra-sleep: gc-stress-parallel.exe --parallel 5 --size 2500 --count 5000 --with-extra-sleep 0.01
without-clear-cells: gc-stress-parallel.exe --parallel 5 --size 2500 --count 5000 --with-clear-cells nil

Note that clearing out the list cells referencing the garbage makes a huge difference:
without it, the heap exhaustion occurs already after <1000 iterations:

#iterations until out-of-heap
  1666 default/dynamic-space-usage__parallel-5__size-2500__count-5000.csv
  2289 default2/dynamic-space-usage__parallel-5__size-2500__count-5000.csv
  2505 with-extra-gc/dynamic-space-usage__parallel-5__size-2500__count-5000__gc-T.csv
  2528 with-extra-sleep/dynamic-space-usage__parallel-5__size-2500__count-5000__sleep-0.01.csv
   544 without-clear-cells/dynamic-space-usage__parallel-5__size-2500__count-5000.csv