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: status of gcj's boehm collector?



"Boehm, Hans" <hans_boehm@hp.com> writes:
> What kind of latency have you seen?  I'd actually love a few more
> examples where the stop-the-world collector is clearly inadequate on
> modern hardware.

Well, I'm releasing the project (source and all) on New Year's day, so
if you can wait until then, you'll see it. It's clearly noticeable.

My software employs a 2d layout/rendering engine vaguely similar to
the guts of an HTML rendering engine (think Mozilla XUL). When you
resize a window, it does some pretty intense computation to resize all
the components of the window (think tables nested to a depth of around
25). When "smooth resize" is turned on, and you rapidly resize the
window, every once in a while you see a quite noticable pause (wild
guess: ~200ms), which I'm fairly certain is GC.

The problem doesn't exhibit itself under HotSpot, although that's
possibly also because the GCJ version is so incredibly fast (which in
turn is partly because I use native methods to do raw writes to an X11
shared pixmap, along with liberal use of hardware-accelerated
XCopyArea()'s), so the rendering engine is able to do several times
more frames per second, meaning that more resizing-computations are
performed per second, meaning that more garbage is generated. Plus,
small pauses are more noticable since the resizes are much smoother
with GCJ.


> > Does anybody know any other tricks for reducing pause times? I guess
> > "create less objects" is one answer, and I'm going to try that...

> I you are targeting X86, and you know that the code will run on a Pentium
> III or IV, turn on prefetching support in the collector.

If I turn this on, and somebody runs it on a PII, will it segfault (in
which case I can't do this), or just perform more poorly than if I had
left it off (in which case I probably will)?


  - a


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