Immediate Dominators return <ROOT> class name [message #629057] |
Sun, 26 September 2010 21:26  |
Eclipse User |
|
|
|
Hi, i'm using Eclipse MAT to analyze my heapdump(i'm experiencing out of memory error in my application).
When i'm using "leak suspects" feature i get information that byte[] is using above 90% of memory. When i'm trying to find Immediate Dominators i end up with one row with class name= ROOT.
Unfortunately this doesn't help me a lot, although i read few useful blogs in which "immediate dominator" feature was really helpful.
Can someone give me advice how to continue with analyzing the problem.
Thanks.
|
|
|
Re: Immediate Dominators return <ROOT> class name [message #629209 is a reply to message #629057] |
Mon, 27 September 2010 13:40   |
Eclipse User |
|
|
|
Hi,
Just a quick explanation what this ROOT is. The dominator tree is constructed by introducing one artificial object (this ROOT one) which points to the garbage collection roots reported in the heap dump. If you just display the dominator tree this node is not visible. In the 'immediate dominator' query we show it, and it means that there was no other immediate dominator for the object.
This means that either the object itself is a GC root, or it is referenced by two (or more) GC roots via some independent reference chains. It may help to look at the "Paths from GC roots" to this object.
With the huge byte[] I would asume the object itself is a GC root - a java local variable or a method parameter somewhere on the stack of a thread. There are often problems where the OutOfMemoryError is not caused by a memory leak, but rather by a certain operation which needed too much memory to complete. In such cases, one can usually see one or several huge objects being a <Java Local> GC root on some thread.
In this case it is usually effective to explore the thread - look at its name, look at the other objects it references, look at its stacktrace (if the heap dump provides one), and try to figure out more about the "expensive" task/operation. We recently did an Eclipse webinar and covered also this topic there. You can watch the webinar here:
http://live.eclipse.org/node/939
The part I am talking about we named "Inspecting Threads".
Let me know if this helps you find more about the problem you are faceing.
Krum
|
|
|
Re: Immediate Dominators return <ROOT> class name [message #629685 is a reply to message #629057] |
Wed, 29 September 2010 09:02  |
Eclipse User |
|
|
|
Hi Krum, thank you for quick response.
Your suggestion i found very useful, although it didn't help me resolving my problem directly, i manage to understand much better what is going inside the JVM and which part(s) of my
application are problematic.
Keep up the good work with Eclipse MAT.
Regards.Igor.
|
|
|
Powered by
FUDForum. Page generated in 0.12373 seconds