【发布时间】:2013-04-09 04:55:28
【问题描述】:
我有一个应用程序在启动时运行两个或三个完整的 GC。有很多堆空间,不需要运行任何 GC(次要或完全)。但是在 gc 日志上,我可以看到 permgen 被填满,然后立即运行完整的 GC。在此之后,permgen 空间增加。最终,一旦所有的类都加载完毕,就不会再有full GC了。
我的问题是,如果 permgen 被填满,VM 是否会运行 GC 以从堆中获取一些内存并为 permgen 添加额外的内存?还是会抛出 OutOfMemory-permgen?
【问题讨论】:
-
看起来如果你最初增加 MaxPermGen,你可以避免这些 GC