I'm pleased to announce that I've released the version 0.2 of the following my tool to find slow memory leak of java applications.
Tool to find slow memory leak of java applications
You can download the jar file of version 0.2 from here(src). You can just execute this as a Java appliction with adding this jar file to CLASSPATH. The usage is similar to UNIX diff command like the following.
-----
java quitada.JavaObjectDiff [java histogram file before memory leak] [java histogram file after memory leak]
-----
And also, this release is built as a runnable jar. So you can execute this tool with the following command line.
-----
java -jar JavaObjDiff-v0.2.jar [java histogram file before memory leak] [java histogram file after memory leak]
-----
In this release, you can additionally see the following output showing the difference of the bytes of each obejcts and sort them in descending order like the following.
-----
Sorted by objects byte
diff of #instances diff of #bytes class name
----------------- ------------------ ----------
10828 731832 [B
10000 320000 com.gemstone.gemfire.internal.cache.VMThinRegionEntry
1739 301136 <constMethodKlass>
10244 245856 java.util.concurrent.ConcurrentHashMap$HashEntry
5632 210472 [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
5632 180224 java.util.concurrent.ConcurrentHashMap$Segment
211 179104 <constantPoolKlass>
10000 160000 com.gemstone.gemfire.internal.cache.VMCachedDeserializable
9872 157952 java.lang.Integer
:
-8 -256 java.util.ResourceBundle$LoaderReference
-8 -320 java.util.ResourceBundle$BundleReference
-8 -384 java.util.ResourceBundle$CacheKey
:
-----
To do this, please simply add --sort:byte option lile the following.
-----
java -jar JavaObjDiff-v0.2.jar --sort:byte [java histogram file before memory leak] [java histogram file after memory leak]
-----
For details of new options, please execute the following command with --help options.
-----
java -jar JavaObjDiff-v0.2.jar --help
-----