[erlang-questions] Memory management
Ladislav Lenart
lenartlad@REDACTED
Thu Apr 26 18:39:07 CEST 2007
Per Gustafsson wrote:
> When a process is created in Erlang it has a Heap consisting of 233
> words. When this space has been exhausted a garbage collection is
> performed and if the live data takes up more than 75 % of the total heap
> size then the size of the heap is increased (To the next fibonacci
> number) and if it takes up less than 25 % of available heap space the
> heap size is decreased.
> (The 75% and 25% figures are not necessarily correct and a process heap
> newer shrinks below 233 words)
So the memory consumption during a test run of our application means
that there is 800MB of data that can not be GC'ed. Oops. So there is
definitely something wrong with the appliation... :-(
> Thus the heaps for each process are growing and shrinking as the program
> executes. This is necessary for a system which handles hundreds of
> thousands of processes because if each process had a fixed heap size
> then if the process which has most live data uses S words and there are
> N processes the system would use S*N words.
Yes, this seems reasonable. I was just thinking that there could be
a threshold for the GC to "start bother" in which case there could
be 800MB of garbage in our running application... :-)
Thanks,
Ladislav Lenart
More information about the erlang-questions
mailing list