jprofiler記憶體分析
- 檢視項目所有對象的建立
- 1、建立記錄 選擇【start Recording】–>【Configure Recording Profiles】
- 2、選擇自己想記錄的資訊 【OK】
- 3、我們在開始記錄之前 先【Run GC】一次, gc後開始标記【Mark current】,以目前的對象執行個體數為基準 之後新增的會有其他顔色區分出來。
- 4、開始記錄【Start Recordings】 選擇剛配置的1032
- 5、在準備結束監控日志前 再進行一次【Run GC】
- 6、結束監控日志 【Stop Recordings】
- 7、現在紅色的部分就是監控期間 垃圾回收器 未能回收的對象,我們選擇未回收的對象分析【show selection heap walker】
- 8、勾選select recorded objects 從剛才的監控記錄中分析
- 9、選擇references
- 10、選擇要分析的對象【Use selected Objects】 +11、 Reference 選擇 【incoming references】
- 12、選擇【show in Graph】
- 13、檢視【show paths to gc root】
高cpu占用線程查找
- 1、任務管理器檢視要查找的程序的pid
- 2、打開管理者方式打開cmd
- 3、導出程序快照 jstack -l 14204 > c:/14204.stack
- 4、cpu占用率用Process Explorer v15.3 看 Process Explorer v15.3下載下傳位址
- 5、根據自己電腦選擇對應版本輕按兩下運作,根據PID找到我們要看的程序 選擇【Properties …】 * 6、選擇【Threads】可以檢視線程cpu占用情況
- 7、根據TID 轉16進制 像上面的 TID:12680 轉16進制後是 3188,用3188到前面導出的14204.stack檔案中查找 可以看到該線程id對應的線程資訊
- 參考部落格:
- 使用JProfiler進行記憶體分析
- 揪出java程式占用cpu很高的線程