Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Memory Analyzer » Immediate Dominators return <ROOT> class name
Immediate Dominators return <ROOT> class name [message #629057] Sun, 26 September 2010 21:26 Go to next message
igor  is currently offline igor Friend
Messages: 2
Registered: September 2010
Junior Member
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 Go to previous messageGo to next message
Krum Tsvetkov is currently offline Krum TsvetkovFriend
Messages: 164
Registered: July 2009
Senior Member
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 Go to previous message
igor  is currently offline igor Friend
Messages: 2
Registered: September 2010
Junior Member
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.
Previous Topic:comparing heap dumps?
Next Topic:"IBM dump (using helper VM)" heap dump provider missing
Goto Forum:
  


Current Time: Tue Apr 23 17:09:14 GMT 2024

Powered by FUDForum. Page generated in 0.03041 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top