This is the mail archive of the 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]

GC latency in GCJ


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,

P.O. Gaillard

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