[erlang-questions] Garbage collection
Salikhov Dinislam
Dinislam.Salikhov@REDACTED
Mon Dec 19 13:29:18 CET 2016
Hello!
I've got a couple of questions about garbage collection:
1. AFAIU, a process's heap is garbage collected when the process is
executed. A process creates and destroys new objects and when there is
no enough room for the new object in the heap, GC is invoked.
When the process is in scheduler's wait queue, then no new objects are
created, so GC isn't called.
The only exception, I see, is when new messages are sent to suspended
process: they are to be kept in receiver's heap and it may lead to GC
invoked.
Is my understanding correct? Or there are other possibilities to GC
suspended process?
2. In OTP-19.2 sources, erts/emulator/beam/erl_gc.c:sweep_off_heap() may
reallocate ProcBins including the struct binary they point to. The list
of ProcBins to realloc is received in link_live_proc_bin(). What
prevents us to reallocate the binary that may be referenced by another
process?
Salikhov Dinislam
More information about the erlang-questions
mailing list