簡體   English   中英

什么時候不使用 G1GC 垃圾收集器?

[英]When not to use G1GC garbage collector?

我研究了可用於 JVM 的各種垃圾收集器之間的差異。 這是解釋它們之間主要區別的答案: https ://stackoverflow.com/a/54619838/5345646

這里對 G1GC 說:

它是低暫停/服務器風格的 gc,主要用於大堆(> 4Gb)。

我們有一台總內存為 4 GB 的機器,分配給 JVM 的堆大小為 1 GB。 我想了解這是否會給我們帶來任何問題,或者 G1GC 會正常工作。

以下總結基於:


  • 如果您對 GC 暫停時間完全不感興趣,請使用串行收集器(如果您只有一個核心)或並行收集器(如果您有多個核心)。

  • 如果您需要較短的暫停時間(很有可能),請使用 G1 收集器。

  • 如果您需要超低的暫停時間,並且/或者您有一個非常大的堆,請使用 Z 收集器。

從 Java 14 開始,舊的 CMS 收集器已被刪除。


請注意,如果您指定暫停時間和/或吞吐量目標,您可以將 GC 的選擇和調整留給 JVM。 當您不了解自己在做什么時,這可能比手動選擇和調整 GC 風險小。

此處描述了這種“基於行為的調整”方法及其優勢。


您問:

我們有一台總內存為 4 GB 的機器,分配給 JVM 的堆大小為 1 GB。 我想了解這是否會給我們帶來任何問題,或者 G1GC 會正常工作。

我們不能告訴你它是否會正常工作。 這將取決於您的應用程序行為的各個方面以及您的期望。 例如,如果您的應用程序遇到它們,您會關心哪些“問題”。 我建議您從“基於行為的調優”開始,然后看看它對您有什么幫助。

另外,請注意,對於應用程序而言,設置過小的最大堆大小將不會很好地結束……無論您選擇哪種 GC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM