網友評分: 5分
VisualVM 是一款集成了多個jdk命令行的可視化工具,一般都用來對Java應用程序做性能分析和調優,功能包括生成和分析海量數據、跟蹤內存泄漏、監控垃圾回收器、執行內存和 CPU 分析,同時它還支持在 MBeans 上進行瀏覽和操作。
一、性能分析的主要方式
1.監視:監視是一種用來查看應用程序運行時行為的一般方法。通常會有多個視圖(View)分別實時地顯示 CPU 使用情況、內存使用情況、線程狀態以及其他一些有用的信息,以便用戶能很快地發現問題的關鍵所在。
2.轉儲:性能分析工具從內存中獲得當前狀態數據并存儲到文件用于靜態的性能分析。Java 程序是通過在啟動 Java 程序時添加適當的條件參數來觸發轉儲操作的。它包括以下三種:
系統轉儲:JVM 生成的本地系統的轉儲,又稱作核心轉儲。一般的,系統轉儲數據量大,需要平臺相關的工具去分析,如 Windows 上的 windbg 和 Linux 上的 gdb.
Java 轉儲:JVM 內部生成的格式化后的數據,包括線程信息,類的加載信息以及堆的統計數據。通常也用于檢測死鎖。
堆轉儲:JVM 將所有對象的堆內容存儲到文件。
二、快照
應用程序啟動后,性能分析工具開始收集各種運行時數據,其中一些數據直接顯示在監視視圖中,而另外大部分數據被保存在內部,直到用戶要求獲取快照,基于這些保存的數據的統計信息才被顯示出來??煺瞻藨贸绦蛟谝欢螘r間內的執行信息,通常有 CPU 快照和內存快照兩種類型。
CPU 快照:主要包含了應用程序中函數的調用關系及運行時間,這些信息通??梢栽?CPU 快照視圖中進行查看。
內存快照:主要包含了內存的分配和使用情況、載入的所有類、存在的對象信息及對象間的引用關系等。這些信息通??梢栽趦却婵煺找晥D中進行查看。
三、性能分析
性能分析是通過收集程序運行時的執行數據來幫助開發人員定位程序需要被優化的部分,從而提高程序的運行速度或是內存使用效率,主要有以下三個方面:
CPU 性能分析:CPU 性能分析的主要目的是統計函數的調用情況及執行時間,或者更簡單的情況就是統計應用程序的 CPU 使用情況。通常有 CPU 監視和 CPU 快照兩種方式來顯示 CPU 性能分析結果。
內存性能分析:內存性能分析的主要目的是通過統計內存使用情況檢測可能存在的內存泄露問題及確定優化內存使用的方向。通常有內存監視和內存快照兩種方式來顯示內存性能分析結果。
線程性能分析:線程性能分析主要用于在多線程應用程序中確定內存的問題所在。一般包括線程的狀態變化情況,死鎖情況和某個線程在線程生命期內狀態的分布情況等。
1、內存分析:VisualVM 通過檢測 JVM 中加載的類和對象信息等幫助我們分析內存使用情況,我們可以通過 VisualVM 的監視標簽和 Profiler 標簽對應用程序進行內存分析。
2、CPU 分析:VisualVM 能夠監控應用程序在一段時間的 CPU 的使用情況,顯示 CPU 的使用率、方法的執行效率和頻率等相關數據幫助我們發現應用程序的性能瓶頸。我們可以通過 VisualVM 的監視標簽和 Profiler 標簽對應用程序進行 CPU 性能分析。
3、線程分析:Java 語言能夠很好的實現多線程應用程序。當我們對一個多線程應用程序進行調試或者開發后期做性能調優的時候,往往需要了解當前程序中所有線程的運行狀態,是否有死鎖、熱鎖等情況的發生,從而分析系統可能存在的問題。
4、快照分析:我們可以使用 VisualVM 的快照功能生成任意個性能分析快照并保存到本地來輔助我們進行性能分析??煺諡椴东@應用程序性能分析數據提供了一個很便捷的方式因為快照一旦生成可以在任何時候離線打開和查看,也可以相互傳閱。
VisualVM 提供了兩種類型的快照:
Profiler 快照:當有一個性能分析會話(內存或者 CPU)正在進行時,我們可以通過性能分析結果工具欄的“快照”按鈕生成 Profiler 快照捕獲當時的性能分析數據。
應用程序快照:我們可以右鍵點擊左側 Applications 窗口中應用程序節點,選擇“應用程序快照”為生成一個應用程序快照。應用程序快照會收集某一時刻的堆轉儲,線程轉儲和 Profiler 快照,同時也會捕獲 JVM 的一些基本信息。
5、轉儲功能
線程轉儲的生成與分析:VisualVM 能夠對正在運行的本地應用程序生成線程轉儲,把活動線程的堆棧蹤跡打印出來,幫助我們有效了解線程運行的情況,診斷死鎖、應用程序癱瘓等問題。
堆轉儲的生成與分析:VisualVM 能夠生成堆轉儲,統計某一特定時刻 JVM 中的對象信息,幫助我們分析對象的引用關系、是否有內存泄漏情況的發生等。
一、安裝VisualVM
1、將 VisualVM 安裝程序解壓縮到本地系統。
2、導航至 VisualVM 安裝目錄的 bin 目錄,然后啟動 jvisualvm.exe。
二、安裝 VisualVM 上的插件
VisualVM 插件中心提供很多插件以供安裝向 VisualVM 添加功能。可以通過 VisualVM 應用程序安裝,或者從 VisualVM 插件中心手動下載插件,然后離線安裝。另外,用戶還可以通過下載插件分發文件 (.nbm 文件 ) 安裝第三方插件為 VisualVM 添加功能。
1、VisualVM 插件中心安裝插件安裝步驟 :
從主菜單中選擇“工具”>“插件”。
在“可用插件”標簽中,選中該插件的“安裝”復選框。單擊“安裝”。
逐步完成插件安裝程序。
2、從主菜單中選擇“工具”>“插件”。
在“已下載”標簽中,點擊"添加插件"按鈕,選擇已下載的插件分發文件 (.nbm) 并打開。
選中打開的插件分發文件,并單擊"安裝"按鈕,逐步完成插件安裝程序。
App Builder2022最新破解版 V2022.1 免費版 162.22M | 多國語言 | 8
詳情DecSoft App Builder(應用程序生成器) V2021.20 官方版 149.73M | 英文 | 8
詳情FastDevPlat(可視化免代碼開發平臺工具) V2.0 官方版 23.41M | 簡體中文 | 10
詳情我的世界編程一小時 V1.6.0.42737 官方版 101.64M | 簡體中文 | 7.8
詳情uAPP Creator(可視化開發工具) V1.0.1 官方版 462.48M | 簡體中文 | 8
詳情VisualFreeBasic(可視化編程環境) V5.7.5 官方版 78.45M | 英文 | 10
詳情