<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 24, 2014 at 3:13 AM, Eranga Udesh <span dir="ltr"><<a href="mailto:eranga.erl@gmail.com" target="_blank">eranga.erl@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">However my suggestion is to, instead of doing a full sweep by the garbage collector (GC) to identify data going out of scope and reclaim, can the program (or rather I) deliberately say I (the calling process) is finished using the said data, so the GC may free that part.</blockquote></div><br>You probably want to read the paper "A unified theory of Garbage collection", Baker <a href="http://et.al">et.al</a>[0]. What you are proposing is certainly possible. You can identify data which is dead after you leave a scope and quickly reclaim such data. Very simple data already has this property and goes onto the Y stack in he VM. It has to be weighed against a number of factors though. It is not a priori clear it would provide a much better space profile of the program. The Erlang GC is generational to avoid storing data which is short-lived in size, so usually it is able to take care of dead data quite efficiently.</div><div class="gmail_extra"><br></div><div class="gmail_extra">The paper describes the duality between quick release of data weighed against the advantage of batching up garbage collection in larger chunks. Good GCs tend to gravitate toward the dual point. So a collector relying on reference counting has to adapt itself as to not pause the system when freeing up a large structure. And systems relying on batch collection gains what you propose to free memory faster for certain known corner cases.</div><div class="gmail_extra"><br></div><div class="gmail_extra">That said, I am interested in your use case, because I have never really hit Erlangs GC as a limiting factor. Maybe because I'm concious about how a GC works and tries to pet it nicely :)</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">[0] <a href="http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf">http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf</a><br><br clear="all"><div><br></div>-- <br>J.
</div></div>