Hi Neeraj -- Good question; this has come up in another recent discussion on this list.
I still have a query on your answer to question #2. As I understand, for a YG promotion to be successful GC needs a contiguous memory chunk equal to the sum of sizes of Eden and From space which comes out to be approx. 230 MB in our case. The total free space in the "BinaryTreeDictionary" containing larger blocks is only ~2.8 MB but the promotions are still succeeding.
My question is: *where the GC is getting the contiguous memory chunk of 230 MB from?*
That was indeed the old constraint in the early versions of 1.4.2, which was fixed in some early version of 5.0 (if i recall correctly) so that we could handle "promotion failure" (where mid-scavenge we discover that we have no space in the old gen to promote a live object from the young gen). That code was subsequently also backported to some version of 1.4.2, probably 1.4.2_11 or later (i am not sure precisely which version, but can find out if you really care). As a result, (at least) in 1.4.2_17, in fact, there isn't such a restriction, and scavenges will occur even in the absence of the pessimal "full promotion guarantee". -- ramki _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use