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
- Mysql查詢調優記錄MySql
- python效能調優的一次記錄Python
- Java GC 專家系列3:GC調優實踐JavaGC
- 探探Java之 JVM GC與調優JavaJVMGC
- JVM調優筆記(一)--Nacos GC引發的服務批次下線問題JVM筆記GC
- 一個新上線資料庫的調優記錄資料庫
- JVM GC調優一則–增大Eden Space提高效能JVMGC
- Java 9 中的 GC 調優基礎JavaGC
- Java 9中的GC調優基礎JavaGC
- 記錄一個cpu彪高的BUG處理--jvm調優JVM
- java效能調優記錄(執行緒阻塞)Java執行緒
- SQL Server DBA調優日記(一)——大資料量查詢記錄數優化及原理探討SQLServer大資料優化
- 一個疑惑 ,gc cr grant 2-way ,簡單記錄GC
- 調研記錄
- 記一次SQL調優過程SQL
- 一次 JVM 調優的筆記JVM筆記
- 記錄一次打包優化優化
- 【Spark篇】---Spark調優之程式碼調優,資料本地化調優,記憶體調優,SparkShuffle調優,Executor的堆外記憶體調優Spark記憶體
- GC那些事兒–Android記憶體優化第一彈GCAndroid記憶體優化
- GC那些事兒--Android記憶體優化第一彈GCAndroid記憶體優化
- 生產服務GC調優實踐基本流程總結GC
- Java 效能調優:最佳化 GC 執行緒設定JavaGC執行緒
- 關於GC原理和效能調優實踐,看這一篇就夠了!GC
- 誰說.NET沒有GC調優?只改一行程式碼就讓程式不再佔用記憶體GC行程記憶體
- 深度學習模型調優方法(Deep Learning學習記錄)深度學習模型
- 記一次SQL Server刪除SQL調優SQLServer
- 記一次我的 MySQL 調優經歷MySql
- 深入理解 Java G1 垃圾收集器GC調優[轉]JavaGC
- 第一次指令微調大模型記錄大模型
- 調整sql臨時記錄SQL
- 記一次jvm調優及垃圾收集器JVM
- 記一次 Laravel 應用效能調優經歷Laravel
- 工作記錄-優化大表更新一例優化
- 記憶體調優實戰記憶體
- 【GC】安裝GC之前需要調整的幾個引數GC
- JVM面試問題系列:JVM 配置常用引數和常用 GC 調優策略JVM面試GC