JMP is a profiler for java that can be used to trace objects usage and method timings. JMP uses the JVMPI interface to gather statistics and interact with the JVM. JMP uses a GTK+ interface to show the status.
JMP normally uses one window to show the classes in memory. Each class has summary information for number of instances and total bytes of used memory for all the instances.
JMP also shows method timings and calls in another window. Several columns show time taken in the method, number of calls to each method, time taken in methods called.
JMP collects information about which method are called and from where, this information is used to build call graphs.
JMP is written in C, it is designed for speed.