Java守护程序的最佳GC

SyB*_*Ber 4 java garbage-collection

只是为了澄清我在这里看到的一点间接回答:

在主要运行应用程序的多CPU /多核机器上使用的最好的GC是ConcurrentMarkSweeper(又名-XX:+ UseConcMarkSweepGC)?

还有,有一种叫做G1的东西,什么时候可以用于Java6?

编辑:我正在使用Sun Java VM,1.6.0_16-b01.我有实时(尽可能接近Java实时)应用程序,并且自然希望GC扫描尽可能短.有足够的CPU功率(ConcMarkSweep似乎需要).

谢谢.

Aar*_*ron 8

这取决于应用程序对GC暂停的容差类型.ConcurrentMarkSweep最适合减少GC暂停的大小,从而减少延迟,而Parellel GC将以更长的GC暂停为代价实现最佳吞吐量.

G1目前是一项实验性功能.我认为在Java7发布之前它通常不可用.

我建议你看一下这个页面:http: //java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html

它包含有关GC算法和行为的大量信息.有一节提供了为您的应用选择最佳GC的建议:http: //java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html#available_collectors.selecting