如何定义默认的 Max Permgen 大小:

How Is the Default Max Permgen Size Defined:

根据我能找到的文档和我能找到的 Whosebug 问题,我的理解是默认最大 permgen 大小为 64MB。

我是 运行 Eclipse Kepler x86、Windows 7 x64、Java 7 的应用程序,未设置 -XX:MaxPermSize 标志。在出现 Permgen OutOfMemory 错误之前,应用程序的最大值约为 82 MB。我不明白这个 ~82 MB 的数字是从哪里来的。如果能参考最新的技术文档,了解如何得出默认的最大 perm gen 大小,我们将不胜感激。

注意:这不是关于如何 debug/fix PermGen OutOfMemoryErrors 的问题。

您是 运行 64 位环境,它具有比 32 位 jre 更大的 permgen 默认值。您获得的 permgen 增加了 30%,即大约 83 Megs,这又与您的值相匹配。

这也记录在 Oracle 的 VM 参数页面上。

Oracle VM Params