7

只是好奇。我听说新的 G1GC 解决了这个延迟问题。我不能/不想使用 RTSJ。

提前致谢

4

4 回答 4

7

您可能对Zing JVM之类的东西感兴趣。

Azul 系统在低延迟 JVM 调优方面投入了大量精力。我相信也有一些有趣的技术论文解释了这是如何完成的。

于 2012-03-24T04:51:28.567 回答
6

听起来您正在寻找CMS GC — 并发标记扫描

在此处输入图像描述

(来源:JavaHotSpot™ 虚拟机中的内存管理,第12 页)


2015 年 12 月更新:您可能对 Azul 的“无暂停”GC 感兴趣。有关更多信息,请参阅Azul 的“无暂停”垃圾收集器的说明

于 2012-03-24T04:44:08.540 回答
2

我不认为有任何零暂停垃圾收集器。但一般来说,像 CMS 这样的低暂停收集器会完成这项工作。

停顿和停顿减少的问题如下:

  • 零暂停(或几乎零暂停)收集机制显着增加了正常程序执行的开销。对于像 Java 这样的多线程语言尤其如此。

  • 如果应用程序生成太多垃圾,使用专用线程或线程进行垃圾收集的方案可能会被淹没。

  • 如果应用程序的内存使用模式过于“笨拙”和/或您没有足够的物理和虚拟内存,那么任何 GC 方案都会给您带来较差的性能。

于 2012-03-24T05:03:26.313 回答
1

您可以尝试 JDK 7 中最新的 G1 垃圾收集。

于 2012-03-24T05:19:18.427 回答