Another fascinating tool I stumbled upon. Never thought I would ever need anything like this but this was very useful for a secret project I am working on.
This memory analyzer gives you a good overview of your memory utilization based on segments. Which objects are using how much memory and whats garbage collector up to.
![]()
It reads in dump files - on OSX they suggest using jmap.
So far it will tell you :-
What are the sizes of the collections, which my objects are keeping?
What is the fill ratio of the collections held by my objects?
Are the hash functions of my objects really working fine?
An easy way to look at the content of HashMaps
Arrays!
* "Arrays Grouped By Size" - works on both primitive and Object arrays
* "Array Fill Ratio" - does not work on primitive arrays. Provides the ratio between non-null elements in the arrays and the length of the arrays
.... And while I am discussing java tools. I also found a heap analyzer http://www.alphaworks.ibm.com/tech/heapanalyzer IBM's project.
Another useful java debugging tool when using threads - I wish I knew about this when doing my Java HTTP Proxy project. Locksness will tell you if there are any dead locks and bottlenecks in your code.