The general purpose heap analyzer

Yet another way to use the Memleak tool is as a general purpose heap analyzer. The Types panel shows relationships between the types (classes) on the Java heap. It can also list the specific instances in such a relationship. In the next example, we've found a peculiar cycle in our Type Graph. We can see that there are instances of Hashtable entries that are actually pointing back to their Hashtable. To list just the instances of Hashtable$Entry pointing to Hashtable, we simply right click on the number in the reference relation (see the following screenshot), and select List referring instances.

The general purpose heap analyzer

We have now, with a few clicks, been able to list all the Hashtable instances in the system that contain Hashtables. It is also easy to determine exactly where they are located in the system. Simply select an instance, add it to the Instance Graph and trace the shortest path back to the root referrer. Doing this for the first instance will reveal that it is located in the com.sun.jmx.mbeanserver.RepositorySupport. Of course, having Hashtables that contain Hashtables is not a crime; this merely serves as an example of the versatility of the Memleak tool.

Note

You need a 1.5-based JDK to see the Hashtables containing Hashtables for this example. In a 1.6-based JDK, the design has changed.

Any instance can be inspected in Memleak. Next, we inspect the instance of com.sun.jmx.mbeanserver.RepositorySupport to verify that it indeed contains Hashtable instances.

The general purpose heap analyzer
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.26.138