GC調優記錄(一)
1、學習記錄
a、垃圾確認演算法
**引用計數(referenc count)**--- 記錄指向物件引用的數量,缺點:迴圈引用垃圾無法判斷。
**根可達演算法(root searching)**--- 根物件不可達物件即為垃圾。一個具有註腳的文字。
根物件1
b、垃圾回收演算法
mark-sweep、copying、mark-compact
c、垃圾回收器
目前存在的垃圾回收器包括:
有物理分割槽:young區使用(serial 、parNew、parallel scavenge)、old區使用(CMS、serial old 、parallel old)
無物理分割槽,存在yonge.old邏輯分割槽:G1
無物理分割槽,無邏輯分割槽:ZGC、shenandoah
windows使用命令檢視垃圾回收器:java -XX:+PrintCommandLineFlags -version
jdk8預設ps+po(parallel scavenge + parallel old)
jdk9-jdk13預設G1
d、體會
垃圾回收演算法沿著計算機記憶體,算力的發展,由初代支援單執行緒垃圾回收(serial 、
serial old)---->發展為並行(parallel scavenge 等) --->發展為併發(CMS)。
同時在優化過程中對於yong (enden ,survivor survivor),old區的物理分割槽.、邏輯分割槽同時存在,
到G1的只存在邏輯分割槽(主要分塊region,每個region在不同時間條件可能是不同的邏輯型別,如:eden、old等),再往後發展,也會淡化邏輯分割槽的概念。
2、垃圾回收器引數記錄
a、GC常用引數
- -Xmn -Xms -Xmx -Xss
年輕代 最小堆 最大堆 棧空間 - -XX:+DisableExplictGC
禁用System.gc() (使用此命令為FGC) - -XX:+PrintGC
- -XX:+PrintGCDetails
- -XX:+PrintHeapAtGC
- -XX:+PrintGCTimeStamps
- -verbose:class
類載入詳細過程 - -XX:+PrintVMOptions
- -XX:+PrintFlagsFinal -XX:+PrintFlagsInitial
最終使用引數值,初始化引數值(所有) - -Xloggc:opt/log/gc.log
- 設定gc日誌
- -XX:MaxTenuringThreshold
升代年齡,最大值15
b、CMS常用引數
- -XX:+UseConcMarkSweepGC 開啟CMS垃圾回收器
- -XX:ParallelCMSThreads
CMS執行緒數量 - -XX:CMSInitiatingOccupancyFraction
使用多少比例的老年代後開始CMS收集,預設是68%(近似值,jdk8本地測試,大約62%)
c、G1常用引數
- -XX:+UseG1GC 開啟G1垃圾回收器
- -XX:+G1HeapRegionSize
分割槽大小,建議逐漸增大該值,1 2 4 8 16 32。
size大小的設定需平衡,過大過小均由缺點 - G1NewSizePercent
新生代最小比例,預設為5% - G1MaxNewSizePercent
新生代最大比例,預設為60% - GCTimeRatio
GC時間建議比例,G1會根據這個值調整堆空間 - ConcGCThreads
執行緒數量 - InitiatingHeapOccupancyPercent
啟動G1的堆空間佔用比例
根物件包括:JVM stack ,native method stack,runtime constant pool,static reference in method area,Clazz ↩︎
相關文章
- java效能調優記錄Java
- java效能調優記錄(限流)Java
- 探探Java之 JVM GC與調優JavaJVMGC
- JVM調優筆記(一)--Nacos GC引發的服務批次下線問題JVM筆記GC
- 記錄一個cpu彪高的BUG處理--jvm調優JVM
- java效能調優記錄(執行緒阻塞)Java執行緒
- 記一次效能調優
- GC那些事兒–Android記憶體優化第一彈GCAndroid記憶體優化
- 調研記錄
- 記錄一次打包優化優化
- 記一次SQL調優過程SQL
- 記一次 Istio 衝刺調優
- 深度學習模型調優方法(Deep Learning學習記錄)深度學習模型
- Java 效能調優:最佳化 GC 執行緒設定JavaGC執行緒
- 生產服務GC調優實踐基本流程總結GC
- 關於GC原理和效能調優實踐,看這一篇就夠了!GC
- 誰說.NET沒有GC調優?只改一行程式碼就讓程式不再佔用記憶體GC行程記憶體
- 記一次SQL Server刪除SQL調優SQLServer
- 記一次我的 MySQL 調優經歷MySql
- 第一次指令微調大模型記錄大模型
- JVM調優——JVM監控工具jvisualvm的使用及GC外掛安裝JVMLVMGC
- 記一次分割槽表update調優過程
- 記一次jvm調優及垃圾收集器JVM
- 站點優化記錄優化
- SQL優化工作記錄SQL優化
- 記憶體調優實戰記憶體
- 透過一次GC調整使Python速度提高20%GCPython
- 給祖傳系統做了點 GC調優,暫停時間降低了 90%GC
- JVM面試問題系列:JVM 配置常用引數和常用 GC 調優策略JVM面試GC
- 精華推薦 | 【JVM深層系列】「GC底層調優系列」一文帶你徹底加強夯實底層原理之GC垃圾回收技術的分析指南(GC原理透析)JVMGC
- RabbitMq 最全的效能調優筆記MQ筆記
- Laravel 高併發調優筆記Laravel筆記
- React 優秀外掛記錄React
- MySQL 優化實戰記錄MySql優化
- 一夜搞懂 | JVM GC&記憶體分配JVMGC記憶體
- 【深入理解JVM】8、JVM實戰調優+GC演算法+JVM調優如何定位問題+常見的定位JVM優化命令【面試必備】JVMGC演算法優化面試
- 八張圖徹底瞭解JDK8 GC調優祕籍-附PDF下載JDKGC
- JVM效能調優,記憶體分析工具JVM記憶體