有谁知道在Java中配置GC的好指南?

时间:2010-12-20 22:27:49

标签: java garbage-collection jvm

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

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

那么,最重要的是,有没有人知道在Java中配置GC的好指南?

3 个答案:

答案 0 :(得分:6)

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

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

这些选项的组合基本上在后台运行另一个线程(井2),它不断标记和扫描GC。你付出的代价是CPU的使用量有点多,但在现代的CPU中,大多数人都不会注意到这一点。

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

你真的需要通过Google阅读尽可能多的关于'java性能调优'的文章,你需要对你的应用程序(详细GC)进行分析,以找出它正在做什么来获得Java的params的正确组合。像其他任何事情一样,只是盲目地抛弃选项而不知道他们做什么会导致更差的表现,而不是更好。

答案 1 :(得分:3)

答案 2 :(得分:1)

目前,Hotspot VM中GC的最新资源如下: