JMP - Java Memory Profiler JMP logo
 
General
About
Installation
Licence
Changelog
Screenshot
Performance

Download
Current version: 0.18
jmp.tar.gz

Contacts
Robert Olofsson
d94-rol@nada.kth.se

  Screenshot - jmp-0.17

The first image show that character arrays are the instances that use the most memory.
The meaning of the columns are:
ClassThe class that has instances.
instancesThe current number of allocated instances.
max instancesThe maximum simultanious number of allocated instances.
SizeThe current number of bytes instances of this class use.

screenshot - objects

This image shows how object connect to each other. Finding the owner to objects is the easy way to find memory leaks.
screenshot - object owners

In the next image we can see where the java program is spending time. The columns I value the most are the secs and calls. Note! The time used is real time, so if you have 10 threads and your application is running for 60 seconds you should see a total time of 600 seconds used.

The meaning of the columns are:
Class The class that holds the method.
method The method that takes time.
secs The number of seconds that this method has used.
calls The number of calls to this method.
subs sec The number of seconds that methods called from this method has taken. Recursive methods can show up big time here.

screenshot - methods


Here is a method call graph. As we can see here the match method is recursivly called (via scanComment).

screenshot - methods


Here is a window showing all the threads in the system.
Name The name of the threads.
Group The group of the thread.
Parent The parent of the thread.
Contenation The time this thread has spent waiting for a monitor.
Class The class of the stack trace element.
Method The method of the stack trace element.

screenshot - threads


Here is the main control window.
screenshot - jmp