Current Status

Jerry Kramskoy Jerry.Kramskoy@isltd.insignia.com
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
easier.


-----Original Message-----
From: Per Bothner <bothner@cygnus.com>
To: Jon Olson <olson@mmsi.com>
Cc: java-discuss@cygnus.com <java-discuss@cygnus.com>
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.
Would
>> be cool to provide this as a compile time option to both `gcj' and
`gjavah'.
>> 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
size
>> and location for the life of the object.  The second object would be
variable
>> 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
the
>> 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     bothner@cygnus.com     http://www.cygnus.com/~bothner
>
>



More information about the Java mailing list