[ruby-cvs:50537] ko1:r43395 (trunk): * gc.c: introduce tomb heap.
ko1 at ruby-lang.org
ko1 at ruby-lang.org
Wed Oct 23 17:48:55 JST 2013
ko1 2013-10-23 17:48:54 +0900 (Wed, 23 Oct 2013)
New Revision: 43395
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=43395
Log:
* gc.c: introduce tomb heap.
Tomb heap is where zombie objects and ghost (freed slot) lived in.
Separate from other heaps (now there is only eden heap) at sweeping
helps freeing pages more efficiently.
Before this patch, even if there is an empty page at former phase
of sweeping, we can't free it.
Algorithm:
(1) Sweeping all pages in a heap and move empty pages from the
heap to tomb_heap.
(2) Check all exsisting pages and free a page
if all slots of this page are empty and
there is enough empty slots (checking by swept_num)
To introduce this pach, there are several tuning of GC parameters.
Modified files:
trunk/ChangeLog
trunk/gc.c
More information about the ruby-cvs
mailing list