I've recently increase my use of the Profiler in Netbeans (6.7), this is a great tool.
I have a question however. When taking a heap dump, on the summary page (expect window) it is possible to 'find the biggest objects by retained size'.
What is this value and how is it used to analyze memory usage?
Retained size of an object is its shallow size plus the shallow sizes of the objects that are accessible, directly or indirectly, only from this object. In other words, the retained size represents the amount of memory that will be freed by the garbage collector when this object is collected.
I think the best definition for "Retained" in the VisualVM is the amount of memory that will remain after garbage collection. In some cases it can be bigger than the "Size" since it reference other objects (or collections) directly or indirectly.
Shallow and retained sizeshallow size: the size of the object itself. retained size: the size of the object itself, plus the size of other objects that are kept alive by this object.
Retained heap is the amount of memory that will be freed when the particular object is garbage collected.
The retained size for an object is the quantity of memory this objects preserves from garbage collection.
The formal definition is "the size of the object plus the size of all objects referenced only by the first object, recursively".
For more explanations about what the retained memory is, see this article.
One easy way to remember it is that the retained memory is all the memory that could be garbage collected if this object was dereferenced.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With