[Gc] Re: Understanding why GC'ing increases to the double in time?
Martin Egholm Nielsen
martin at egholm-nielsen.dk
Tue Mar 14 06:59:57 PST 2006
> I actually wasn't expecting this to be a single object.
Heh, see what ignorance can result in :-)
> I would guess that it's an array of references.
>
> The real question might be what any nonzero components point to.
>
> There is a gcj_describe_type_fn function in gcc/libjava/boehm.cc in the
> gcc source tree, which is unfortunately declared static. It tries to
> write the class name for a gcj object into a buffer. Invoking that on the
> object as a whole, and on nested pointers (e.g. words with GC_base(word)
> != 0) might tell you where this is coming from.
Aheem, I have to admit I have no idea how to invoke that function from
within the GC code - it would have to be from GCJ context (as I see it).
Help?
(I tried dumping the object char for char, but that didn't result in
anything helpfull - at least not the way I did it, anyway)
> I think your best hope is that there will be an easy way to avoid
> allocating this object.
I vote for this approach.
However, I still think it is funny that the moment the large composite
object appear, the next-to-largest from before disappears:
=== Small ===
MEN adding composite with size 8192
MEN adding composite with size 128
MEN adding composite with size 128
MEN adding composite with size 340
MEN adding composite with size 340
MEN adding composite with size 146
MEN adding composite with size 146
MEN adding composite with size 256
MEN adding composite with size 128
MEN adding composite with size 128
--> MEN adding composite with size 21506
MEN adding composite with size 769
MEN adding composite with size 1127
MEN adding composite with size 128
MEN adding composite with size 256
MEN adding composite with size 204
MEN adding composite with size 128
=== Large ===
MEN adding composite with size 8192
MEN adding composite with size 128
MEN adding composite with size 128
MEN adding composite with size 340
MEN adding composite with size 340
MEN adding composite with size 146
MEN adding composite with size 146
--> MEN adding composite with size 172034
MEN adding composite with size 256
MEN adding composite with size 128
MEN adding composite with size 128
MEN adding composite with size 769
MEN adding composite with size 1127
MEN adding composite with size 128
MEN adding composite with size 256
MEN adding composite with size 204
MEN adding composite with size 128
and the rest of the composites (>100) can be matched one-to-one.
Further, the the composite of word-size 21506 appear extremely early in
the application, before anything has been done, actually (some few Java
API invocations - but no one specific)...
Don't know if this has anything to say?!
// Martin
More information about the Gc
mailing list