簡體   English   中英

如何在 IntelliJ 中分析堆轉儲? (內存泄漏)

[英]How can I analyze a heap dump in IntelliJ? (memory leak)

我已經從我的 java 應用程序生成了一個堆轉儲,該應用程序已經使用jmap工具運行了幾天 -> 這會產生一個大的二進制堆轉儲文件。

如何在 IntellIJ IDEA 中執行此堆轉儲的內存分析?

我知道有適用於 Eclipse 和 Netbeans 的工具,但如果可能的話,我寧願使用 IDEA。

分析的基本結果將告訴我每個類在內存中每個對象的實例數,以便我能夠開始調試內存泄漏。

最好的東西是Memory Analyzer (MAT) ,IntelliJ 沒有任何捆綁的堆轉儲分析器。

我想將上面的答案更新到 2018 年,並說要同時使用 VisualVM 和 Eclipse MAT。

如何使用:

VisualVM 用於實時監控和轉儲堆。 您還可以用強大的功能分析堆轉儲,但是 MAT 具有更多功能(例如自動分析以查找泄漏),因此,我將 VisualVM 轉儲輸出(.hprof 文件)讀入 MAT。



獲取 VisualVM:

在此處下載 VisualVM: https : //visualvm.github.io/

您還需要下載 Intellij 插件: 在此處輸入圖片說明

然后你會在 intellij 中看到另外 2 個新的橙色圖標: 在此處輸入圖片說明

使用橙色運行應用程序后,在 VisualVM 中,您將在左側看到您的進程,在右側看到數據。 坐下來學習一下這個工具,它非常強大: 在此處輸入圖片說明



獨立獲取 Eclipse 的內存分析工具 (MAT):

在這里下載: https : //www.eclipse.org/mat/downloads.php

這是它的外觀: 在此處輸入圖片說明 在此處輸入圖片說明

希望能幫助到你!

您還可以使用 VisualVM Launcher 從 IDEA 中啟動 VisualVM。 https://plugins.jetbrains.com/plugin/7115?pr=idea我個人覺得這更方便。

在插件存儲庫中還存在一個“JVM 調試器內存視圖”,這可能很有用。

您可以運行位於jdk/bin/jvisualvm.exe “Java VisualVM”

這將打開一個 GUI,使用“文件”菜單 ->“加載...”然后選擇您的 *.hprof 文件

就是這樣,你完成了!

Intellij Idea 的 VisualVM 插件

在此處輸入圖片說明

您可以從這里安裝 JVisualVM 插件: https ://plugins.jetbrains.com/plugin/3749?pr =

這將允許您分析插件中的轉儲。

IntelliJ IDEA 2021.2<\/strong>開始,有一個功能叫做Open an external profiling report<\/a> 。 查看器的 UI 如下所示:

您可以通過以下任一方式查看堆轉儲:

  1. 從主菜單查看<\/strong>>工具窗口<\/strong>>探查器<\/strong>,然后單擊打開快照<\/strong><\/li>
  2. 運行<\/strong>>打開 Profiler 快照<\/strong>> 從主菜單打開<\/strong><\/li>
  3. 將堆轉儲文件拖入 IntelliJ 窗口<\/li><\/ol>"

暫無
暫無

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

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