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]

Someone registers thousands of Object's and MethodRef's (was/is: gc times doubling)


Hi,

I wouldn't state that I'm actually getting closer to understanding my GC time-doubling problem (just track my postings), but I'm getting more information.

_Old facts_: On my slow target my GC times are about 200ms, but suddenly and out of no where, it increases to some 400ms.
By printf-tracing the GC/libgcj source, I discovered that the increase is due to a "huge" increase in an array and it's marking in "_Jv_MarkArray".
Suddenly the array increases its length from some 21.000 to (approx) eight times the length - namely 170.000.
This increases my GC times with some 200ms.


And I (still) don't understand why the array increases, so I begun dumping info about the array content, and finally today I managed to hack my intentions into "libjava/boehm.cc".

_New stuff_: I've only dumped the content of the small array (21.000) yet, (but that is still interesting, since I don't understand the nature of that one either). The content is the following:


15179 of 21504 entries are non-null (points inside feasable heap-region) 6326 elements are of class "gnu.gcj.runtime.MethodRef" 8854 elements are of class "java.lang.Object"


Now, that's many MethodRef's!
And invoking "toString()" on these elements reveals nothing of value - e.g.:



MEN: element 21499: java.lang.Object@10534fd0 MEN: element 21501: gnu.gcj.runtime.MethodRef@105eb9f0


Still, I know nothing of what the large array (170.000) consist of, but since it "replaces" the small array (it disappears from marking when the large enters the scene), I reckon it's something similar.



Can anybody tell me anything of value wrt. this?
Why the many method-ref's?
Why doesn't toString() reveal anything of value - I would expect only such Object output from java.lang.Object it self?



// Martin - ever confused...



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