[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] Big objects and GC
From: |
Gwenael Casaccio |
Subject: |
Re: [Help-smalltalk] Big objects and GC |
Date: |
Wed, 11 May 2011 10:59:41 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110424 Lightning/1.0b2 Thunderbird/3.1.10 |
On 05/10/2011 11:59 AM, Gwenael Casaccio wrote:
Hi,
Currently in GST big objects are allocated in the old space
and won't move during the GC. The non-moving property is nice
but putting big objects in the old space is not good since we
need to do a full GC to free them.
I've made a small patch not yet finished (there is one last bug when
I do a make check) which creates a new kind of object:
F_LARGE that can be in young space and after tenured to the old space.
The difference is that the object won't move during the copy gc and the
tenure step.
git://github.com/MrGwen/GNU-Smalltalk.git in the branch LargeOOP.
Cheers,
Gwen
Hi,
Here is the patch, all the tests are green ;-)
Basically I've added a new flag F_LARGE, and a new method for allocating
large object: gst_alloc_large_obj. The object is fixed and won't move
during the GC, so that implies that when tenuring an object I check if
the object is F_LARGE. Also a special care is taken when the object is
sweep, I use the correct heap. The image loading is updated to take care
of the F_LARGE field.
Cheers,
Gwen
large-oop.patch
Description: Text Data