This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FW: Garbage collection issues in GCJ


On 01/17/2011 05:08 AM, Ben Keppler wrote:

We are using gcj for a time sensitive application.  One of the
requirements of the application is that messages be transmitted
within a 60ms timeframe.  Unfortunately, the Boehm GC used in gcj is
not generational and thus every collection is of the "stop the
world" variety.  We are observing (using "GC_PRINT_STATS") regular
collections that stop the world for periods in the 400ms range.
This is a problem for us.

The comments I have found on the "incremental" setting for the
Boehm GC indicate that it doesn't work with gcj, so that would not
appear to be an option.  My question is, are there other GC options
(perhaps a generational garbage collector) available for gcj?  My
research has revealed none other than TinyGC, an option that would
exacerbate rather than relieve our problems.  Alternatively, are
there settings on the Boehm GC that might relieve our problems?  I
would appreciate any information you could provide.

1) GCJ's libjava is not really suited for realtime applications.


2) Setting the GCFreeSpaceDivisor (by calling
_Jv_SetGCFreeSpaceDivisor()) to a low value (try 5) may result in
shorter, but more frequent, GC intervals.  Limiting the total heap
size will also reduce the amount of work done by the GC during each
collection.

David Daney


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]