簡體   English   中英

如何使用visualvm查找內存泄漏

[英]How to find memory leaks using visualvm

我懷疑我們的 ActiveMQ 連接橋中存在重大內存泄漏 - 我們看到典型的內存泄漏模式(應用程序加載正常,如果長時間運行或在短時間內反復重啟,則速度會變慢) . 我查找了查找 Java 內存泄漏的現代最佳實踐,許多開發人員似乎正在放棄像 jhat/jmap 這樣的傳統工具來代替 new(er) jvisualvm

啟動此工具(並花幾個小時閱讀其教程)后,我能夠為 CPU 和內存拍攝分析器快照。

我只是有點卡在這一點上 - 我如何分析這些快照以識別泄漏? 有大量關於如何使用 jvisualvm 生成快照的文檔,但關於如何真正理解它們的文檔很少。

提前致謝。

使用visualvm 分析內存泄漏並不是那么容易。 它有一個名為“sampler”的工具/插件。 這可用於對內存或 CPU 進行采樣。 您可以定期拍攝快照並查找可能的泄漏。 以下是有關如何使用它的一些詳細信息 - 從快速搜索中獲得

更有效的方法是獲取堆轉儲(例如,當應用程序變慢或發生OOM 時)。 VisualVM 幫助您進行堆轉儲(監視器選項卡上使用堆轉儲

該文件可以通過MAT進行分析 - 如何分析 .hprof 文件在此處提供了一些詳細信息

暫無
暫無

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

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