2010-12-20 79 views
3

我在运行应用程序的JVM遇到问题,它的堆内存看起来像梳子。它不断从1.5 GB跳到3 GB,并逐渐恶化到更高的值。我使用G1 GC算法,但不知道如何配置它。有谁知道在Java中配置GC的好指南吗?

我无法访问正在运行的应用程序的代码,不用说,它是一个相当大的应用程序。

因此,底线,有谁知道一个很好的指导配置在Java Java GC?

回答

6

调整JVM是一种艺术与科学的结合,每个人都没有答案。您所看到的情况听起来像默认的GC正在做一个“现在标记,稍后扫描”,这可能导致扫描期间暂停。选项一组,你可以尝试:

JAVA_OPTS="-server -XX:-UseParallelGC -XX:-UseConcMarkSweepGC" 

,选项组合基本上运行在不断标记和清除的GC背景另一个线程(孔2)。你付出的代价是CPU的使用更多一些,但在现代CPU中,大多数人几乎不会注意到这一点。

这里是所有选项:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

你真的需要通过谷歌阅读上的Java性能优化“的许多文章,你可以发现,你需要配置您的应用程序(详细GC)找出什么它正在做的是将正确的params组合到Java中。与其他任何事情一样,只是盲目抛出选项而不知道自己做了什么会导致更糟糕的表现,而不是更好。

1

目前的HotSpot虚拟机的最先进的最新资源GC是以下两个:

相关问题