On 10/31/06, Xiao-Feng Li <[EMAIL PROTECTED]> wrote:
On 10/31/06, Pavel Pervov <[EMAIL PROTECTED]> wrote:
> > 7- Each class loader structure maintains a set of boolean flags, one
> > flag per "non-nursery" garbage collected area (even when thread-local
> > heaps are used).  The flag is set when an instance of a class loaded by
> > this class leader is moved into the related GC-area.  The flag is unset
> > when the GC-area is emptied, or (optionally) when it can be determined
> > that no instance of a class loaded by this class loader remains in the
> > GC-area.  This is best implemented as follows: a) use an unconditional
> > write of "true" in the flag every time an object is moved into the
> > GC-area by the garbage collector, b) unset the related flag in "all"
> > class loader structures just before collecting a GC-area, then setting
> > the flag back when an object survives in the area.
>
>
> Requires identification of object' class type during GC. Will most
> probably degrade GC performance.

Yes, this is also my concern.

Yes, tracing and marking of Vtable objects can be cheaper then tracing
object->vtable->class->classloader for each object.

Even #2 proposal will degrade performance, but this approach will do
this even more.

--
Ivan

Reply via email to