使用JDK自帶的VisualVM進行Java程式的效能分析
VisualVM是什麼?
VisualVM是JDK自帶的一個用於Java程式效能分析的工具,JDK安裝完畢後就有啦,在JDK安裝目錄的bin資料夾下能找到名稱為jvisualvm.exe。
要使用VisualVM分析您的應用效能,首先得讓VisualVM識別出您的應用。Eclipse有個外掛名叫“VisualVM Launcher for Eclipse”,可以幫助我們做到這一點。
Eclipse VisualVM Launcher的安裝和配置
1. 從下面的連結下載VisualVM Launcher外掛。下載完畢後,放到您本地Eclipse資料夾的plugins資料夾下。
http://visualvm.java.net/eclipse-launcher.html
你可以參考下圖我本地的Eclipse資料夾。注意這個外掛解壓之後,應該有一個名叫site.xml的檔案。
2. 在Eclipse裡,選單 “Help->Install New Software”, 點 “Local”, 把第一步下載的外掛檔案載入進去。
Plugin檔案已經被成功識別出來,可以安裝了。
3. 安裝完畢,重啟Eclipse,能在Eclipse的option裡能看到一個新的關於VisualVM的介面了。我們需要告訴Eclipse我們JDK自帶的VisualVM的可執行檔案具體路徑。這裡根據JDK的路徑指定即可。
注意JDK home可別錯誤指定成JRE的路徑了,否則Eclipse也會貼心地彈出錯誤提示:Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)。
使用VisualVM進行效能測試
右鍵單擊您的Java專案,從右鍵選單裡選擇“Run as”->”Run configuration”, 建立一個新的應用程式啟動配置。
因為前面我們已經成功安裝了Eclipse VisualVM Launcher,所以此時發現除了Eclipse自帶的Eclipse JDT launcher之外,多了一個VisualVM Launch的選項。
2. 假設我自己實現了一個快速排序演算法,我想測一測它的效能。
首先我在下圖程式碼第57行執行我的快速排序演算法之處設定一個斷點。
然後使用前一步建立的基於Eclipse VisualVM Launcher的應用程式啟動配置,以除錯模式啟動我的Java應用。
斷點觸發,這樣VisualVM就成功識別到了我的Java應用。點選Profiler標籤頁:
當前狀態: profiling inactive.
點選CPU按鈕:
現在Profile處於啟用狀態了。
3. 回到Eclipse,按F8結束應用程式的執行。應用程式一旦結束,VisualVM會立即撲捉到這個事件,並彈出一個視窗通知我們:
點Yes,就可以查閱VisualVM為我們產生的效能評測分析報告了。
要獲取更多Jerry的原創技術文章,請關注公眾號”汪子熙”或者掃描下面二維碼:
相關文章
- 使用VisualVM進行Java應用的效能測量LVMJava
- 一些JDK自帶的效能分析利器JDK
- 使用JDK自帶的jmap和jhat監控處於執行狀態的Java程式JDKJava
- JDK中自帶的JVM分析工具JDKJVM
- 使用 XDebug + Webgrind 進行 PHP 程式效能分析WebPHP
- 效能測試之JVM的故障分析工具VisualVMJVMLVM
- 使用pprof進行效能分析
- 使用火焰圖進行Java應用效能分析Java
- Docker中使用Xhprof 對程式碼進行效能分析Docker
- 使用JDK自帶的工具jstack找出造成執行程式死鎖的原因JDKJS行程
- VisualVM中的JDK Flight Recorder支援 - Jiří SedláčekLVMJDK
- 使用CentOS 7.5解除安裝自帶jdk安裝自己的JDK1.8CentOSJDK
- Windows 2003自帶效能監控工具的使用Windows
- VisualVM第一章-VisualVM的下載和使用LVM
- java自帶的四種執行緒池Java執行緒
- 如何使用SAP事務碼SAT進行UI應用的效能分析UI
- 使用 Dynatrace 對 Node.js 應用的效能資料進行分析Node.js
- 利用perf進行效能分析
- JMH-大廠是如何使用JMH進行Java程式碼效能測試的?必須掌握!Java
- 使用Apache自帶的ab命令測試網站效能Apache網站
- Vivado使用技巧(7):使用IP核自帶Testbench進行模擬
- 使用python進行Oracle資料庫效能趨勢分析PythonOracle資料庫
- 使用Java和Elastic Stack進行日誌分析JavaAST
- 指定特定的jdk進行安裝JDK
- 快速使用 vscode 進行 Java 程式設計VSCodeJava程式設計
- 使用AI進行需求分析的案例研究AI
- 使用JDK 17執行IntelliJ IDEA以獲得更好的Metal渲染效能JDKIntelliJIdea
- 進位制轉化--Java自帶方法Java
- 利用VisualVm和JMX遠端監控K8S裡的Java程式LVMK8SJava
- 效能分析之CPU分析-從CPU呼叫高到具體程式碼行(JAVA)Java
- 瞭解JDK、JRE、JVM及Java程式的編譯與執行JDKJVMJava編譯
- Laradock 下使用 Tideways_xhprof+Xhgui 進行效能分析 —— 安裝篇IDEGUI
- 使用shouldComponentUpdate進行效能優化優化
- 使用Loadrunner進行效能測試
- 什麼情況下需要進行靜態程式分析?常用Java靜態程式碼分析工具的優勢Java
- Java併發程式設計:Java執行緒池核心ThreadPoolExecutor的使用和原理分析Java程式設計執行緒thread
- IDEA使用自帶下載的open jdk導致控制檯輸出中文亂碼IdeaJDK
- beego 使用 coding 的 webhook 2.0 進行自動部署GoWebHook