Reputation: 137
I am currently making a code audit on many java applications for a major energy administration located in France.
I have used many Tools to audit the code (I even wrote a specific parser since I cannot compile the code...). For the performance problem (one of the sides of the Audit), I used dynaTrace
and it has shown me that the susrvivor
spaces are totally empty.
In addition the Eden space
is never garbage collected which provokes large amounts of "stop the world GC" on the tenured space. The Enden space
is 1GB space, survivors
are 300MB, and tenured
is 2,8GB.
Could you help me find an explanation for that strange behavior ? Thanks in advance.
Upvotes: 2
Views: 668
Reputation: 703
According to this post: https://stackoverflow.com/a/39933015/6162023
So will there be ever a scenario to have that objects directly gets copied from eden to Old if objects are smaller in size (not humongous) ?
If you make the survivor spaces small enough to trigger a full collection each time, the objects will go from Eden to Tenured.
In your case, if the code contains a memory leak (which is the most probable scenario), if the leak is big enough that a Minor GC would fill all of your Survivor space, then objects are moved to the Old Gen (Tenured) space straight away.
Upvotes: 2