你如何在Java中设计一个好的permgen空间字符串?

时间:2008-10-04 17:12:24

标签: java jvm permgen

我想知道如何在Java中设计一个好的permgen空间字符串。根据我的研究和理解,我想出了以下内容:

示例:JAVA_OPTS='-Xmx512m -XX:MaxPermSize=256m -server -Djava.awt.headless=true'

很抱歉,当我第一次发布问题时,示例没有粘贴......

1 个答案:

答案 0 :(得分:5)

我对这个问题也有点不清楚,但是如果你的意思是什么是用于最大permgen大小的好数字,它将取决于你的应用程序和加载的类/方法的数量。为了帮助确定它们,您可以使用其典型且最强烈的用例运行应用程序,并使用JConsole查看您的应用程序实际最终使用的内容。

JConsole可以显示所有堆和永久生成空间,因此您可以通过这种方式确定MaxPermSize所需的数量。由于它是类+方法数据,它将是应用程序加载的类数量的函数,而不是有多少实例。请注意,它也与堆大小分开(实际上,JConsole将内存使用分类为非堆内存使用)。在我链接的JConsole页面上,参见图5.它是最右边的非堆,可以单击。

在Java 6中,应用程序将允许来自JConsole的连接,而无需其他配置。在Java 5中,您可能需要设置一些标志。它包含在JDK中。

作为参考,对于加载了~10,000个类的应用程序,我们的MaxPermSize是96m