Help understanding Heap Analysis.....
I'm testing a web application(Struts 2.0, Spring 2.0, Hibernate 3.0, JDK 1.5.0_15, Tomcat 5) which has some potential memory related problems.
Initially the application was giving "java.lang.OutOfMemoryError: PermGen space".
The PermGen settings were default i.e. Min:16M & Max:64M
I tried and load test the application with JMeter and again reproduced the same "java.lang.OutOfMemoryError: PermGen space".
After that I changed the PermGen settings to Min:32M & Max:256M
After this there were no "java.lang.OutOfMemoryError: PermGen space" issues..
Next I chose "Eclipse Memory Analyzer" to analyze the Heap dumps.
I also heard of "Leaking ClassLoaders". I tried identifying those too but didnt succeed may be I am new to "Eclipse Memory Analyzer".
The strategy that I'm thinking goes like this:
(1). First I will identify some important/potential use cases that might consume more memory(say 30-50 use cases)
(2). Next after performing that use case in the application I will be taking the Heap Dump using jmap using:
jmap -heap:format=b <pid>
(3). For each of the identified use cases I'll be analyzing the Heap Dump and accordingly collecting statistics.
This way I guess I'll be able to identify the potential memory leaks in the application....
IS MY STRATEGY CORRECT?
IS THERE ANY OTHER WAY OF SOLVING THE POTENTIAL MEMORY RELATED PROBLEMS IN MY APPLICATION?
Please give some suggestions or alternatives as I'm new in using Eclipse Memory Analyzer.
Thanks & Regards,