名单的垃圾收集:什么Java垃圾收集器清理PermGen?
- 串行GC
- 并行GC
- 并行老GC
- 浓马克扫描GC
- G1 GC
我知道浓马克Sweep GC支持在启用ClassUnloading JVM选项时清除PermGen。其他垃圾收集器是否支持清理PermGen?
原因:我们使用Spring,Hibernate和Groovy来创建很多代理,并且Perm Gen变得很大。
编辑: 应该提到我正在使用Java 7.我知道Java 8将删除Perm Gen,并希望在未来某个时候升级。与此同时,我的问题是关于其他垃圾收集器是否支持清除除Conc Mark Sweep之外的PermGen。
- 串行GC
- 并行GC(相信 - 服务器默认使用此,并确认它清理烫发根)
- 并行老GC
- 浓马克扫GC(可使用JVM清理烫发根标志)
- G1 GC
如果你得到OOME:PermGen空间错误,那很可能是由于内存泄漏,而不是有故障的GC引擎。 – 2015-02-10 14:06:20
您可以升级到Java 8,其中PermGen [已被删除](http://openjdk.java.net/jeps/122)。 – Jesper 2015-02-10 14:07:53