<div dir="ltr">Well, yes I may deliberately lie.<div><br></div><div>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.</div><div><br></div><div>Then the GC may carry out it's own logic, which it currently does to verify if the same data is referenced by any other processes, etc., and decide if to GC or not.</div><div><br></div><div>= Eranga</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 23, 2014 at 12:42 PM, Richard A. O'Keefe <span dir="ltr"><<a href="mailto:ok@cs.otago.ac.nz" target="_blank">ok@cs.otago.ac.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
On 23/09/2014, at 2:24 PM, Eranga Udesh wrote:<br>
<br>
> Thanks for the information received so far.<br>
><br>
> Wouldn't it be good for Erlang to have a single object garbage collection function/bif?<br>
<br>
</span>NO.  In C it's called free() and it's a major cause of errors.<br>
<span class=""><br>
> For example, when I no longer require a large object, I force to garbage collect it, without making a full sweep?<br>
<br>
</span>Why should the garbage collector *believe* you that the "object"<br>
is free?  You could be deliberately lying.  You could (and<br>
probably are) be mistaken.  How is it to know which bits you<br>
want to keep without doing its usual thing?  In a shared heap<br>
implementation (which Erlang has had and may have again) the<br>
fact that *you've* finished with the object doesn't mean<br>
everyone *else* has.  A meaningful operation should not depend<br>
on implementation details like that.<br>
<span class="">><br>
> As mentioned in the document, a full sweep may degrade the performance.<br>
<br>
</span>Not half as much as freeing too much would!<br>
<br>
This is micro-optimisation.  Avoid passing around large<br>
objects in the first place.<br>
<br>
</blockquote></div><br></div>