具体来说,为什么对解决PermGen OutOfMemoryError问题有帮助?
另外,为我提供有关JVM参数文档的答案,还有加分。
永久空间是VM使用的类,方法,内部化的字符串以及类似对象的存储位置,并且从不释放(因此命名)。
这篇Oracle文章简洁地介绍了HotSpot GC的工作原理和参数化,并建议您在加载许多类时增加此空间(对于应用程序服务器和诸如Eclipse之类的某些IDE通常是这种情况):
对于大多数应用程序,永久生成不会对垃圾收集器的性能产生明显影响。但是,某些应用程序会动态生成并加载许多类。例如,JavaServer Pages(JSP)页面的某些实现。这些应用程序可能需要更大的永久代来保留其他类。如果是这样,可以使用命令行选项-XX:MaxPermSize =来增加最大永久代大小。
请注意,该其他Oracle文档还列出了其他HotSpot参数。
更新: 从Java 8开始,permgen空间和此设置都消失了。用于加载的类和方法的内存模型是不同的,并且不受限制(使用默认设置)。您不应再看到此错误。