Current Status

Jerry Kramskoy
Thu Feb 18 04:27:00 GMT 1999

Even more of a consideration with using a handle to access an object is the
increase in RAM occupancy ... which may well be of concern to
embedded system manufacturers.  But it certainly makes GC compaction

-----Original Message-----
From: Per Bothner <>
To: Jon Olson <>
Cc: <>
Date: Wednesday, February 17, 1999 9:06 PM
Subject: Re: Current Status

>> Lately, I've been contemplating how difficult it would be to add a level
>> of indirection to objects such that object references were fixed handles
>> to an object table to better support more precise copying collectors.
>> be cool to provide this as a compile time option to both `gcj' and
>> The idea would be that Java objects would exist as two separate
>> objects.  The first object would be a two word object containing a vtable
>> and a pointer to the object field data.  This object would be fixed in
>> and location for the life of the object.  The second object would be
>> in size and movable to support memory compaction.
>This is an old idea.  Both the original Smalltalk *and* the original
>Java (JDK 1.0) did this.  I don't know what Sun currently does.
>> In reality, this wouldn't
>> add any to the storage requirements, because all Java objects currently
>> contain a `vtable' and `sync_info' in their object header.
>But you still need the sync_info somewhere.
>> The main trick
>> is making `gcj' and `g++' recognize the volatility of the reference to
>> field data and never cache it.  Similarly, the object mobility would give
>> preemptive multi-threading fits since it could only preempt at known safe
>> points.  Oh well, for now it's just an idea....
>The other downside is that you always get an extra level of indirection.
>One extra memory reference can really hurt.
>Plus you kill Java/C++ compatibility, which libjava depends on.
>There are actually some vestiges in jc1 of an attempt to support
>this model (look for "handle" and "HANDLE").  I don't see any
>real benefits to this idea, except perhaps in very unusual situations.
> --Per Bothner
>Cygnus Solutions

More information about the Java mailing list