This is the mail archive of the
mailing list for the Java project.
GC latency in GCJ
- From: "P.O. Gaillard" <pierre-olivier dot gaillard at fr dot thalesgroup dot com>
- To: java at gcc dot gnu dot org
- Date: Mon, 24 Apr 2006 17:38:47 +0200
- Subject: GC latency in GCJ
- Reply-to: pierre-olivier dot gaillard at fr dot thalesgroup dot com
I am testing the latency of programs compiled with GCJ and the GC stops
everything when it runs (I run Fedora Core 5, GCJ 4.1 and Linux Trace Toolkit
showed me that all the tasks are suspended during GC as described by Hans Boehm
in a message on this list).
I would like to test my little test program without GC but could not find any
runtime option to stop the garbage collector. Do I really need to recompile GCC
or can I change some runtime parameter ?
Also, I was surprised to see that my test program allocates memory all the time
(the size shown by ps increases until the gc starts) when compiled with gcj.
This does not seem to happen with JDK 1.5. So I tried to use valgrind, gdb,
oprofile to find where _Jv_Malloc is called but I ran into problems (like the
fact that libgc seems to be lacking debugging symbols on my machine).
I would therefore like to ask a few questions on this list :
1) where can I find a documentation of the ways to configure the GC at runtime
(environment variables, calls to C functions etc.) ?
2) is there a way to force the GC to work in 500us/1ms increments ?
3) what is the easiest way to find out where memory is allocated with GCJ ? I
would like to obtain something like what gnatmem, valgrind, jdk
(-Xrunhprof:heap=sites) do. That is obtain backtraces of the call stack for all
the allocation sites in a program.
thank your for your help,