<br><br><div class="gmail_quote">On Sat, Feb 21, 2009 at 11:01 AM, Andreas Raab <span dir="ltr">&lt;<a href="mailto:andreas.raab@gmx.de">andreas.raab@gmx.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d"><br>
Eliot Miranda wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So yes, when creating a new image, all objects are in oldSpace and so no objects need to be in the rot table or have their root bit set.<br>
</blockquote>
<br></div>
Correct.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This raises another point of ignorance for me. &nbsp;I would have thought that it is OK for the root bit to be set or the root table to contain objects that are not in old space or do not/no longer refer to objects in youngSpace because the GC will remove these from the root table on GC. &nbsp;But I don&#39;t see where objects get cleared from the rootTable. &nbsp;I only see the RootTable being voided when it gets full (rather drastic). &nbsp;Can anyone say if this happens or not, and if so, where it happens?<br>

</blockquote>
<br></div>
I think you&#39;re right. Short of a full GC the root table may never get cleared.</blockquote><div><br></div><div>I think next week I&#39;ll instrument the VM and we should put it underneath a server image which we should run for some time ad then interrupt and print the occupancy of the root table. &nbsp;It could be that it is filling up with objects that are no loner roots and incremental collection is slowing down.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Cheers,<br><font color="#888888">
 &nbsp;- Andreas<br>
<br>
</font><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="Ih2E3d">
Looks to me like either markAndTrace: or a specialized version, say markAndTraceRootObject:, should maintain a flag, refersToYoungObject, and clear the object from the rootTable (and clear the root bit) if refersToYoungObject is false at the end of the scan. &nbsp; But with the pointer reversal algorithm it is hard to see where to maintain this flag.<br>

<br>
Can those who know enlighten this ignorant soul?<br>
<br>
TIA<br>
<br></div><div class="Ih2E3d">
On Sat, Feb 21, 2009 at 4:42 AM, Igor Stasenko &lt;<a href="mailto:siguctua@gmail.com" target="_blank">siguctua@gmail.com</a> &lt;mailto:<a href="mailto:siguctua@gmail.com" target="_blank">siguctua@gmail.com</a>&gt;&gt; wrote:<br>

<br>
<br>
 &nbsp; &nbsp;Hi,<br>
 &nbsp; &nbsp;i&#39;d like to ask, is it safe to clear the root flag for every object<br>
 &nbsp; &nbsp;in system.<br>
 &nbsp; &nbsp;I&#39;m artificially creating a new image, and i&#39;d like to know, what<br>
 &nbsp; &nbsp;objects should be marked as roots initially, or VM can care about it<br>
 &nbsp; &nbsp;itself?<br>
<br>
 &nbsp; &nbsp;--<br>
 &nbsp; &nbsp;Best regards,<br>
 &nbsp; &nbsp;Igor Stasenko AKA sig.<br>
<br>
<br>
</div></blockquote>
</blockquote></div><br>