Re: [rvm-research] Question regarding the sanity checker
Eliot Moss <[email protected]> Mon, 27 Mar 2017 15:23:59 -0400
| Newsgroups | gmane.comp.java.jikes.rvm.devel |
|---|---|
| Message-ID | <[email protected]> |
On 3/27/2017 2:23 PM, Shoaib Akram wrote: > Thank you Robin for your answer. I went through the code again and I fully understand the point (b) below. Sanity checker does a full-heap trace after collection and builds a table of all reachable objects. And then inquires the current collection plan the expected RC, making sure the plan’s view matches with it’s own. But I am still confused how it ensures (a). It discards the table built during the Pre-GC phase, and builds a new table in the Post-GC. What it could ensure is the number of live objects before and after collection is the same. But how does it ensure every object reachable before collection is still reachable after collection? It's only a sanity checker. If it finds something wrong, then your GC is broken, but if it does not find anything wrong, that does not mean your GC 100% ok. Among other things, it does not test that the new graph is isomorphic to the original graph of reachable objects, that each root points to the "same" object it did before, etc. But it is still useful. Regards - Eliot Moss ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Jikesrvm-researchers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers