天天看點

jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找

jprofiler記憶體分析

  • 檢視項目所有對象的建立
    • 1、建立記錄 選擇【start Recording】–>【Configure Recording Profiles】
      jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
      jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
    • 2、選擇自己想記錄的資訊 【OK】
      jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
    • 3、我們在開始記錄之前 先【Run GC】一次, gc後開始标記【Mark current】,以目前的對象執行個體數為基準 之後新增的會有其他顔色區分出來。
      jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
    • 4、開始記錄【Start Recordings】 選擇剛配置的1032
      jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 5、在準備結束監控日志前 再進行一次【Run GC】
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 6、結束監控日志 【Stop Recordings】
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 7、現在紅色的部分就是監控期間 垃圾回收器 未能回收的對象,我們選擇未回收的對象分析【show selection heap walker】
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 8、勾選select recorded objects 從剛才的監控記錄中分析
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 9、選擇references
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 10、選擇要分析的對象【Use selected Objects】
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
    +11、 Reference 選擇 【incoming references】
  • jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 12、選擇【show in Graph】
  • jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 13、檢視【show paths to gc root】
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找

高cpu占用線程查找

  • 1、任務管理器檢視要查找的程序的pid
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 2、打開管理者方式打開cmd
  • jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 3、導出程序快照 jstack -l 14204 > c:/14204.stack
  • jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 4、cpu占用率用Process Explorer v15.3 看 Process Explorer v15.3下載下傳位址
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 5、根據自己電腦選擇對應版本輕按兩下運作,根據PID找到我們要看的程序 選擇【Properties …】
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
    * 6、選擇【Threads】可以檢視線程cpu占用情況
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 7、根據TID 轉16進制 像上面的 TID:12680 轉16進制後是 3188,用3188到前面導出的14204.stack檔案中查找 可以看到該線程id對應的線程資訊
    jprofiler記憶體分析和java程式高cpu占用線程的查找jprofiler記憶體分析高cpu占用線程查找
  • 參考部落格:
    • 使用JProfiler進行記憶體分析
    • 揪出java程式占用cpu很高的線程

繼續閱讀