2016-06-28 196 views
-5

如何決定在java中使用哪種垃圾收集算法?任何指針都會有幫助Java垃圾收集算法

+1

其自動在java – Kaushal28

+1

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html – Kaushal28

+0

你可以在這個主題研究很多文件,你不應該在研究之前提出問題。 –

回答

0

除非您的應用程序具有相當嚴格的暫停時間要求,否則請先運行您的應用程序並允許VM選擇收集器。如有必要,請調整堆大小以提高性能。如果性能仍不能達到您的目標,請使用以下指南作爲選擇收集器的起點。

如果應用程序有一個小的數據集(最多大約100MB),然後 選擇與-XX:+UseSerialGC串行收集器。

如果應用程序將在單個處理器上運行,並且不存在暫停時間要求,則 讓VM選擇的集電極,或與 -XX:+UseSerialGC選擇串行收集器。

若(a)峯的應用性能是所述第一優先級和 (b)中沒有暫停時間要求或一秒或更長時間的停頓是可接受的,則 讓VM選擇的集電極,或 選擇並行收集器與-XX:+UseParallelGC和(可選)啓用與-XX:+UseParallelOldGC的並行壓縮。

如果響應時間比整體吞吐量更重要,並且垃圾收集暫停時間必須短於大約一秒,那麼選擇-XX:+UseConcMarkSweepGC併發收集器。如果只有一個或兩個處理器可用,請考慮使用增量模式。