-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CopyingCollector needs to be re-thought. #9
Comments
The |
This problem dates back (at least) as far as the point when we transitioned to Tracefile 3.0 format. f9d2771 |
On the branch |
I performed a series of refactors to the Allocator and RealAllocator classes in order to better understand what is going wrong with these collection policies. The refactors have been pushed to the |
There is a tentative fix for the mark sweep collector on When I perform a non-compacting mark-sweep (by commenting out the |
I took a closer look at the CopyingCollector as well. Please see issue #12 |
The
CopyingCollector
(which is mis-leadingly name) actually performs a mark-sweep-compact collection. The compaction phase of this policy contains a design flaw. The phase works as follows:This phase is flawed for several reasons:
RealAllocator
performs next fit allocation; it caches the last successfully allocated address, and starts subsequent free space searches from there. This adds a further twist into the compaction phase because we are not guaranteed to be starting from the beginning of the heap.The text was updated successfully, but these errors were encountered: