Java7的垃圾优先收集器是如何工作的?

3

众所周知,我们无法强制 JVM 进行垃圾回收,但是 Java7 引入了 Garbage First Collector 技术。这种新技术是否更加强大并能解决应用程序中的内存泄漏问题?请有经验的人详细介绍一下 Java7 的这个功能。它如何对于 Web 应用程序或任何应用程序有用呢?

1个回答

4

G1 的推荐使用场景

G1 的第一个重点是为需要大堆并具有有限 GC 延迟的应用程序用户提供解决方案。这意味着堆大小约为 6GB 或更大,且稳定而可预测的暂停时间低于 0.5 秒。

如果应用程序具有以下一个或多个特征,今天使用 CMS 或 ParallelOld 垃圾收集器运行的应用程序将从切换到 G1 中受益:

超过 50% 的 Java 堆被占用了存活数据。

对象分配速率或晋升速率变化显著。

长时间的垃圾回收或压缩暂停(超过 0.5 到 1 秒)。

您可以参考 Oracle 文档 以获取更多信息。


谢谢您的回复。我们能否以编程方式理解这个概念,以及如何在我们的应用程序中实现它? - user2589993
1
什么是程序化实现?你不需要实现任何东西,你只需告诉JVM在启动标志中使用G1垃圾收集器。这里有一个链接告诉你如何指定这些标志:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#G1Options - kosa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接