I have been helping a friend develop nodes in Knime. For those who don't know Knime is essentially a framework in Java that creates nodes that automate some "thing" you program them to do. Each node has 4-5 classes, and the workflows we are creating have sometimes 50-60 nodes.
I have been researching about PermGen and to my knowledge it is essentially a copy of the compiled form of each class/function for the program to use on runtime. If you have a large number of classes (which we do) then PermGen will run out of memory. Each time I set up a flow my Eclipse crashes, so I thought by decreasing the number of classes I could get it to run again, but now the same flows that were running a week ago are still getting PermGen Errors. I have looked into how to handle the problem but I am not sure which avenue to take and why.
All changes are for eclipse.ini
Adding PermGenSpace:
-XX:MaxPermSize=1024m
CMSClassUnloadingEnabled:
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
CMSPermGenSweepingEnabled:
-XX:MaxPermSize=128m
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
I understand the change of setting MaxPermSize and how it solves the problem and I can't see any negative effects, but I don't understand if the two other changes could effect my setup negatively.
How should I be approaching this problem?
Resource link:
http://www.javacodegeeks.com/2013/12/decoding-java-lang-outofmemoryerror-permgen-space.html