Garbage collection

Ulf Wiger <>
Wed Sep 1 09:10:51 CEST 1999


On Mon, 30 Aug 1999, Vlad Dumitrescu wrote:

vlad.d>>Did this discussion start because someone was unhappy with
vlad.d>the performance >of the Erlang garbage collector or is it
vlad.d>pure (though interesting)  >conjecture about how to speed up
vlad.d>the system?  >
vlad.d>
vlad.d>I started it, and it is on the "to do" list at erlang.org, so
vlad.d>I suppose someone has experienced slow collections...

The main problem, as I see it, with the current collector is that it blocks
the entire runtime system when it starts collecting for one process. Thus,
the GC may be per-process, but all other processes have to wait.

Otherwise, the current collector seems pretty fast. Most GC times are very 
short, and we have determined that the AXD 301 spends something like 5% of 
its CPU resources on GC when going full blast with connection handling.
(This after we have used a few tricks like custom heap size.)

I have seen collections as long as 1 second on a 300 MHz UltraSPARC, but
those are extremely rare and have appeared under very special circumstances
-- with rapidly growing heap and no data that could be released. As I
recall, it also involved a first attempt at generational GC, followed by a
fullsweep GC with a resize of the heap in the middle.

Even such GC times are reasonable as long as they don't make the whole
system unresponsive. This is why I would like to see an effort to make the
collector reentrant.

/Uffe

Ulf Wiger, Chief Designer AXD 301      <>
Ericsson Telecom AB                          tfn: +46  8 719 81 95
Varuvägen 9, Älvsjö                          mob: +46 70 519 81 95
S-126 25 Stockholm, Sweden                   fax: +46  8 719 43 44




More information about the erlang-questions mailing list