GC leaks debugging

Andrew Haley aph@redhat.com
Mon Apr 4 08:13:00 GMT 2011


On 03/04/11 18:59, Erik Groeneveld wrote:
> On Sun, Apr 3, 2011 at 7:14 PM, Erik Groeneveld <erik@cq2.nl> wrote:
>> On Sat, Apr 2, 2011 at 11:38 AM, Erik Groeneveld <erik@cq2.nl> wrote:
>>>
>>>> Note that in the information you posted, the GC was scanning around 7.5MB of roots conservatively.  It might be worth checking what those regions are.
> [...]
>> So I am now off into JvCreateJavaVM,
> 
> and I found that the 7.5 MB roots are the static data area of libgcj
> itself.  The GC calls back -- the last arg being the size:
> 
> _Jv_GC_has_static_roots(../gccinstall/lib/libgcj.so.12, 0xb704f000, 7544028)
> 
> and since libgcj is in 'the store' (_Jv_print_gc_store() prints
> "../gccinstall/lib/libgcj.so.12"), it tells the GC to scan its static
> data area conservatively.
> 
> As of yet I don't understand why this static area is so big, and what
> could be on it, but when I lay myself to rest, the little gray cells
> will sing to me (free after Hercules Poirot ;-).

It'll mostly be introspection data.  Every class and every method has
this, and it can get to be quite large.  I doubt it's the cause of
your memory leak unless there's a bug elsewhere.

Andrew.



More information about the Java mailing list