之前筆者一直使用 JProfiler 來分析性能問題,最近發(fā)現(xiàn) IDEA Ultimate 自帶的 Profiler 非常好用,再也不需要安裝 JProfiler 了。
【資料圖】
另外IDEA Profiler 也要比 免費的 Java JFR Profiler 插件 更加好用,上圖為 Java JFR Profiler 演示,界面使用的是 Firefox Profiler html 開發(fā),體驗較差。
一、快速開始要在 IDEA Ultimate 中開始分析,請單擊 IDE 右上角的三個點或代碼行旁邊的“Play”圖標,然后選擇“Profile with IntelliJ Profiler”。
二、CPU和內(nèi)存分配剖析分析器工具窗口提供了不同的顯示已收集數(shù)據(jù)的方法。您可以選擇適合您的方式,熱點圖、調(diào)用樹、方法列表、時間軸或事件。
2.1 熱點圖這個視圖可以幫助您可視化選定線程的調(diào)用堆棧,并查看它隨時間的變化。??蚣茉綄?,方法執(zhí)行時間越長。彩色塊顯示本地代碼、庫代碼和用戶代碼。
2.2 調(diào)用樹此視圖顯示方法使用的 CPU 時間百分比、應(yīng)用程序中的方法執(zhí)行路徑以及總采樣計數(shù)。調(diào)用樹對于快速概述應(yīng)用程序活動并檢測關(guān)鍵執(zhí)行路徑非常有用。
2.3 方法列表此視圖顯示在分析數(shù)據(jù)時執(zhí)行的方法列表。它們都按累積采樣時間排序。每個所選的方法都有幾個視圖,可以向您顯示該方法的調(diào)用者或被調(diào)用者。
2.4 時間軸時間軸是線程活動隨時間的視覺表示。它有助于檢測異常的 GC 活動、多線程問題(例如死鎖)等。
2.5 事件此視圖顯示與 JVM 事件相關(guān)的數(shù)據(jù),例如類加載、垃圾回收、操作系統(tǒng)事件等等。
三、CPU和內(nèi)存實時圖表在 Profiler Home 界面你也可以選擇其他 java 進程,點擊可獲取內(nèi)存和線程快照、實時的 CPU 和 內(nèi)存使用率圖表。與查看靜態(tài)圖表相反,實時數(shù)據(jù)可以幫助您可視化資源消耗,識別與資源相關(guān)的瓶頸,并了解某些事件如何影響程序性能。
四、結(jié)果導(dǎo)入IDE 自動將分析結(jié)果保存為 .jfr 文件(用于CPU或內(nèi)存采樣)和 .hprof 文件(內(nèi)存快照),可以在需要時打開它們,也可以打開服務(wù)器上導(dǎo)出的快照文件。
關(guān)鍵詞:
凡注有"實況網(wǎng)-重新發(fā)現(xiàn)生活"或電頭為"實況網(wǎng)-重新發(fā)現(xiàn)生活"的稿件,均為實況網(wǎng)-重新發(fā)現(xiàn)生活獨家版權(quán)所有,未經(jīng)許可不得轉(zhuǎn)載或鏡像;授權(quán)轉(zhuǎn)載必須注明來源為"實況網(wǎng)-重新發(fā)現(xiàn)生活",并保留"實況網(wǎng)-重新發(fā)現(xiàn)生活"的電頭。