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

标签 java jvm permgen

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

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

不好意思第一次发题的时候没贴例子......

最佳答案

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

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

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

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

关于java - 你如何在 Java 中设计一个好的 permgen 空间字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/170663/

相关文章:

java - Gradle idea插件排除了其他子项目的传递依赖不排除

java - 如何摆脱 java.lang.OutOfMemoryError : Java heap space

java - 设置 XX :MaxMetaspaceSize to the same old XX:MaxPermSize value 后垃圾收集器停止运行

java - 没有找到足够的连续内存会导致 OOM 吗?

java - 我如何改进 Map<Integer, Map<Integer, Map<PAXType, BigDecimal>>> 使用 Guava

java - 面向 Spring Java 的配置 getBean() 参数不起作用

java - Eclipse 为 Android 开发有这么多问题?

Java 转换之谜 - Class.cast 与强制转换运算符

javascript - Rhino 编译器的编程接口(interface)?

java - Netbeans Java 调试器因内存不足错误而崩溃