日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )

發布時間:2025/6/17 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、Java VisualVM 工具安裝 Visual GC 插件
  • 二、使用 Java VisualVM 分析 GC 內存





一、Java VisualVM 工具安裝 Visual GC 插件



使用

jvisualvm

命令 , 打開 Java VisualVM 工具 ,

在彈出的 " 插件 " 對話框中 , 選擇安裝 " Visual GC " 插件 ,

點擊 " 安裝 " 按鈕 , 彈出如下界面 , 點擊 " 下一步 " 按鈕 , 繼續向后執行 ;

選擇 " 我接受所有許可證協議中的條款(A) " 選項 , 點擊 " 安裝 " 按鈕 ;

之后會很快安裝完畢 , 插件安裝完畢后 , 如下顯示 , 點擊 " 完成 " 按鈕 , Visual GC 插件 安裝完成 ;

在 Java VisualVM 工具 中 , 點擊 IntelliJ IDEA 查看該進程的 GC 情況 , 選擇 Visual GC 選項卡 , 即可查看內存細節 , 如 : 元空間 Metaspace , 老年代 Old Gen , 年輕代中的 Eden Space 區域 , Survivor 0 / 1 區域 ;





二、使用 Java VisualVM 分析 GC 內存



分析 GC 時間 與 Eden Space 區域 內存占用 , 每次 GC 時 , Eden Space 區域 內存使用就變小 , 將其中的對象都丟到了 Survivor 0 或 Survivor 1 區域中 ;

分析 GC 時間 與 Survivor 0 和 Survivor 1 區域的內存使用情況 , 每次 GC 時 , 清空一個區域 , 將數據都拷貝到另一個區域 , 這是垃圾回收算法中的 復制算法 ;

每次 GC 垃圾回收 , 對象的 分代年齡 都會 +1 , 當分代年齡到達一定數量 , 該對象就被判定為永生對象 , 同時將永生對象放到 老年區 , 老年區的內存也是緩慢增加 ;

一旦這幾個內存區域全部裝滿 , 就會出現 OOM 異常 ; 左側的 Old Gen 是老年代 , 右側的 Eden + Survivor 0 + Survivor 1 是年輕代區域 ;


在 年輕代 內存 中 , minor GC 垃圾回收非常頻繁 , 每次都要針對年輕代中的 對象 進行 GC Root 可達性分析 , 如果不可達 , 直接回收 , 如果可達 , 分代年齡 + 1 , 分代年齡到達 15 后 轉入 老年代 ;

在 老年代 內存 中 , full GC 垃圾回收 , 不是很頻繁 , 每次對 永生對象 進行 GC Root 可達性分析 , 不可達的對象直接回收 ;

如果一次創建一個大對象 , 則直接放入老年代中 , 因為大對象需要大塊內存 , 在年輕代中 , 不適合操作大塊內存 , 有很多內存碎片 ;

如果 年輕代 , 老年代 , 內存區域用完 , 新對象 創建后沒有足夠的內存存放 , 則出現 OOM ;

總結

以上是生活随笔為你收集整理的【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。