2010-12-20 40 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是以下兩個:

相關問題