JDK 18 GC垃圾回收機制比較
從 JDK 18 開始,JDK 附帶了四個垃圾收集器 (GC);序列 GC、並行 GC、G1 GC 和 ZGC。在大多數情況下,預設的 GC G1 GC 將是最佳選擇。但是,瞭解 GC 的設計目標可能會有所幫助,並且可能會幫助您實現應用程式的效能目標。本文將對每個 GC 以及何時應該使用它們進行高階研究。
序列垃圾收集器
Serial GC 是 GC 中“最簡單的”。它在單個執行緒上執行所有工作,因此它被命名為“序列”。
Serial GC 最適合在資源有限且 live set 不超過 100 MB 的環境中執行的應用程式。
可以使用 VM 標誌啟用序列 GC -XX:+UseSerialGC:.
並行垃圾收集器
Parallel GC 在架構上類似於 Serial GC,但在執行其工作時可以使用多個執行緒。
並行 GC 旨在最大限度地提高吞吐量。因此,吞吐量是最高優先順序的應用程式,即使以更長的暫停時間為代價,也是理想的用例。
可以使用 VM 標誌啟用並行 GC -XX:+UseParallelGC:.
G1 垃圾收集器
Garbage-First, (G1) GC 被指定為 JDK 9 1的預設 GC 。G1 GC 主要是併發 GC,這意味著它可以在應用程式執行時執行工作。
G1 GC 試圖在延遲和吞吐量之間取得平衡,並且可以從資源最少的環境擴充套件到具有大量資源的環境。
G1 GC 是預設 GC,但可以使用 VM 標誌顯式啟用:-XX:+UseG1GC.
Z 垃圾收集器
最新的 GC ZGC 作為 JDK 15 中的生產特性引入。ZGC 也是併發 GC。
ZGC 專注於低延遲,暫停時間很少超過 250 微秒,並且可以將堆大小從 8MB 擴充套件到 16TB。
可以使用 VM 標誌啟用 ZGC -XX:+UseZGC:
相關文章
- 垃圾回收機制GC從JDK 8到JDK 17的效能提升 - kstefanjGCJDK
- 聊聊JVM的垃圾回收機制GCJVMGC
- JVM學習(二)——GC垃圾回收機制JVMGC
- JAVA垃圾回收機制和Python垃圾回收對比與分析JavaPython
- JDK 18三個垃圾回收G1/Parallel/Serial GC的改進提升點JDKParallelGC
- JVM必備基礎知識(三)-- GC垃圾回收機制JVMGC
- 深入理解Java的垃圾回收機制(GC)實現原理JavaGC
- Unity GC垃圾回收UnityGC
- GC垃圾回收器GC
- java垃圾回收機制Java
- js垃圾回收機制JS
- javascript 垃圾回收機制JavaScript
- Python垃圾回收機制Python
- JVM 垃圾回收機制JVM
- JVM垃圾回收機制JVM
- Java 垃圾回收機制Java
- Java gc(垃圾回收機制)小結,以及Android優化建議JavaGCAndroid優化
- 面試官,不要再問我“Java GC垃圾回收機制”了面試JavaGC
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- 剖析垃圾回收機制(上)
- java垃圾回收機制整理Java
- JS的垃圾回收機制JS
- jvm的垃圾回收機制JVM
- JavaScript的垃圾回收機制JavaScript
- PHP的垃圾回收機制PHP
- PHP的垃圾回收機制-回收週期PHP
- 十種GC垃圾回收器GC
- Java常見知識點彙總(⑰)——垃圾回收機制(garbage collection-GC)JavaGC
- JS垃圾回收機制筆記JS筆記
- [效能][JVM]jvm垃圾回收機制JVM
- V8垃圾回收機制
- JVM垃圾回收機制入門JVM
- 談談 JVM 垃圾回收機制JVM
- 【翻譯】PHP 垃圾回收機制PHP
- Flutter中的垃圾回收機制Flutter
- 圖解Golang垃圾回收機制!圖解Golang
- 託管堆和垃圾回收(GC)GC
- .Net平臺的GC垃圾回收GC