On Sun, 21 Oct 2001 21:27:59 +0200 (CEST), Robert Virding wrote:
>This discussion about unified heaps has made me happy.
>There are definitely problems in doing a good implementation. The
>HIPE groups claim that a stop-and-gc of the whole heap still gives
>acceptable gc performance does not hold in real applications.
Careful with your attributions. Some HiPE members may have said
something like that, but *I* for one have never claimed that
stop-and-copy would scale to a unified-heap system.
My "paper" design always had several layers of incremental and/or
generational algorithms. Roughly:
- stop-and-copy from smallish (tuned to L2 cache size) nursery
to second generation (a.k.a. aging buffer)
- incremental copying from 2nd to 3rd generation, probably using
replicating gc (cloning is ok since Erlang data is immutable)
- incremental non-moving gc for 3rd generation, say mark-sweep,
backed by slab-like allocator for reduced fragmentation