对重复出现的OutOfMemory PermGen空间错误进行故障排除

时间:2015-12-07 19:59:39

标签: java eclipse permgen knime

我一直在帮朋友在Knime中开发节点。对于那些不知道的人来说,Knime本质上是一个Java框架,它创建了一些自动化某些“东西”的节点,你可以为它们编程。每个节点有4-5个类,我们创建的工作流有时会有50-60个节点。

我一直在研究PermGen,据我所知,它本质上是程序在运行时使用的每个类/函数的编译形式的副本。如果您有大量的类(我们这样做),那么PermGen将耗尽内存。每次我设置一个流程时我的Eclipse崩溃了,所以我想通过减少类的数量我可以让它再次运行,但是现在一周前运行的相同流程仍然会得到PermGen错误。我已经研究过如何处理这个问题,但我不确定采取哪种途径以及为什么。

所有更改均适用于eclipse.ini

添加PermGenSpace:

-XX:MaxPermSize=1024m

CMSClassUnloadingEnabled:

-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled

CMSPermGenSweepingEnabled:

-XX:MaxPermSize=128m 
-XX:+UseConcMarkSweepGC 
-XX:+CMSClassUnloadingEnabled

我理解设置MaxPermSize的变化以及它如何解决问题,我看不出任何负面影响,但我不明白其他两个变化是否会对我的设置产生负面影响。

我该如何处理这个问题?

资源链接:

http://www.javacodegeeks.com/2013/12/decoding-java-lang-outofmemoryerror-permgen-space.html

0 个答案:

没有答案