众所周知,我们无法强制 JVM 进行垃圾回收,但是 Java7 引入了 Garbage First Collector 技术。这种新技术是否更加强大并能解决应用程序中的内存泄漏问题?请有经验的人详细介绍一下 Java7 的这个功能。它如何对于 Web 应用程序或任何应用程序有用呢?
众所周知,我们无法强制 JVM 进行垃圾回收,但是 Java7 引入了 Garbage First Collector 技术。这种新技术是否更加强大并能解决应用程序中的内存泄漏问题?请有经验的人详细介绍一下 Java7 的这个功能。它如何对于 Web 应用程序或任何应用程序有用呢?
G1 的推荐使用场景
G1 的第一个重点是为需要大堆并具有有限 GC 延迟的应用程序用户提供解决方案。这意味着堆大小约为 6GB 或更大,且稳定而可预测的暂停时间低于 0.5 秒。
如果应用程序具有以下一个或多个特征,今天使用 CMS 或 ParallelOld 垃圾收集器运行的应用程序将从切换到 G1 中受益:
超过 50% 的 Java 堆被占用了存活数据。
对象分配速率或晋升速率变化显著。
长时间的垃圾回收或压缩暂停(超过 0.5 到 1 秒)。
您可以参考 Oracle 文档 以获取更多信息。