How to troubleshoot JVM performance issues
843829Feb 1 2009 — edited Feb 20 2009We recently had a performance issue with our application running on Java 1.4.2 on Windows where the CPU utilization was extremely high. Using the +PrintClassHistogram option I was able to determine that a char array was utilizing more than 500 megabytes of memory.
My question is, is there another option I can include or process I can follow that would help me determine which object was creating this array?
I am not a Java programmer so I apologize if this is elementary question or if I posted this in the wrong forum. I am the SA they call when the application is not running correctly. I have been reading this forum and the manuals trying to find something that would assist me. The developers will fix the problem after I pinpoint where the problem is.
We do not have any type of JVM profiler so I am trying to troubleshoot this issue with thread dumps and JVM options. My assumption is that if a profiler can retrieve the information I should be able to. Is this a correct assumption?
Lastly, if we were to purchase a profiler does anyone have a recommendation on which one to use? Our latest version of the application utilizes Java 5 so we would need something that would work with both versions of Java if possible.
Any assistance or recommendations anyone could provide would be greatly appreciated.