harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Volosyuk" <ivan.volos...@gmail.com>
Subject Re: [drlvm][sablevm] Desing of Class Unloading Support
Date Tue, 31 Oct 2006 15:02:14 GMT
On 10/31/06, Xiao-Feng Li <xiaofeng.li@gmail.com> wrote:
> On 10/31/06, Pavel Pervov <pmcfirst@gmail.com> 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

Mime
View raw message