I get a PermGen space error on the Sun JVM (1.6.0_21-b06) (Okay, this is Oracle :)). Increasing the -XX option: MaxPermGen value does not help. I know that PermGen is a space intended for persistent objects such as class metadata. The number of classes in the project is not so large ~ 10,000. Before the failure, jvisualvm shows 57MB as used by PermGen.
I guess some kind of algorithm takes up all the available memory. Does anyone know examples of algorithms that lead to PermGen overflow?
UPD I ask such an abstract question, because at the moment when I cannot use any profiler, the code crashes so badly that jvisualvm and eclipse stop responding. I need something to kill java processes from the terminal with kill -KILL {process_numer}. I work with poorly organized (but commercial) code that has many JMS threads and messages. Debugging is a mess - I first need to figure out where to look.
source share