jvm性能分析學(xué)習(xí)過程

1.安裝eclipse 內(nèi)存分析工具:eclipse memory analyzer


2.eclipse memory analyzer學(xué)習(xí)了解
學(xué)會使用eclipse Memory Analyzer --MAT(推薦-很詳細)

3.初次試煉

public class TestJavaHeap_1th  extends TestCase{
    static class OOMObject {

    }

    public static void main(String args[]){
        List<OOMObject> list = new ArrayList<OOMObject>();
        while (true) {
            list.add(new OOMObject());
        }
    }
}

<b>eclipse里操作方法</b>
使用eclipse測試:右鍵當前文件-> debug as-> debug configurations->選擇Arguments標簽頁->在VM arguments里填入 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

如下圖:

eclipse里操作方法

運行結(jié)果:

java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid91424.hprof ...
Heap dump file created [27639817 bytes in 0.172 secs]

以上操作說明:堆的最小值-Xms和最大值-Xmx設(shè)置一樣,限制了堆自動擴展通過參數(shù)-XX:+HeapDumpOnOutOfMemoryError可以讓虛擬機在出現(xiàn)內(nèi)存溢出異常時Dump出當前內(nèi)存堆轉(zhuǎn)儲快照以便事后進行分析

分析:使用內(nèi)存映像分析工具(eclipse memory analyzer)對dump出來的堆轉(zhuǎn)儲快照進行分析,分清楚內(nèi)存中的對象是否有必要,是內(nèi)存泄露(memory leak),還是內(nèi)存溢出(memory overflow),不會用MAT的請參考2里面文章對這個插件的介紹,很詳細!

堆轉(zhuǎn)儲快照文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 分析和理解應(yīng)用的內(nèi)存使用情況是開發(fā)過程中一項不小的挑戰(zhàn)。一個微小的邏輯錯誤可能會導(dǎo)致監(jiān)聽器沒法被釋放回收,最終導(dǎo)致...
    Rave_Tian閱讀 10,811評論 0 15
  • Java 應(yīng)用性能優(yōu)化是一個老生常談的話題,典型的性能問題如頁面響應(yīng)慢、接口超時,服務(wù)器負載高、并發(fā)數(shù)低,數(shù)據(jù)庫頻...
    Rick617閱讀 7,612評論 1 9
  • MAT簡介 MAT(Memory Analyzer Tool),一個基于Eclipse的內(nèi)存分析工具,是一個快速、...
    This4U閱讀 1,203評論 0 5
  • 7月14日 周五 還剩10天 早飯:煎餅x2,南瓜粥 1
    hanyu007閱讀 227評論 0 0
  • One day a woman looked into a mirror and asked:" mirror m...
    goodirene閱讀 214評論 0 1

友情鏈接更多精彩內(nèi)容