中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java多功能Profiling工具JVisual VM怎么用

發布時間:2021-11-20 16:46:02 來源:億速云 閱讀:127 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關Java多功能Profiling工具JVisual VM怎么用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

開發 Java 的朋友一定都遇到過應用不同種類的問題,有些時候是應用 Bug 分析,有些時候是應用性能調優,應用的 Profiling,GC 分析等。

這個時候,有不少的工具可供選擇,有商業的,有開源的可供不同的場景下使用。我們本次的多功能 Profile 工具,依然是 JDK 自帶的一款,可用于多種場景下的應用監控于分析。

這款工具就是JVisual VM,全稱是 Java VisualVM。是一款可視化的 Java VM 應用分析工具。

啟動后是這個樣子:

Java多功能Profiling工具JVisual VM怎么用

分本地和遠程兩種,羅列了當前的 JVM 進程。 遠程的進程是通過 JMX 進行連接,有一些本地的 Profile 功能不支持。

我們以本地進程為例,來介紹下Visual VM 常見功能。

雙擊要分析的 JVM 進程,在打開的 Tab 中選擇功能,默認會顯示概述、監視、線程、抽樣器和 Profiler 這幾項。

由于Visual VM 實現和 NetBeans 一致,所以可以通過插件的方式,增加許多功能。

在【工具】菜單,選擇【插件】,打開下圖,然后選擇要安裝的插件,也可以將插件下載到本地再安裝。格式是一個擴展名為nbm類型的文件。

Java多功能Profiling工具JVisual VM怎么用

像我們稍后要介紹的Visual GC, BTrace 都是通過插件安裝,來增加對應功能的。

概述

在概述這個 Tab 中,會有當前 JVM 進程的一些基本信息,包含 JVM的參數,系統屬性,Main-class 等等。類似如下圖:

Java多功能Profiling工具JVisual VM怎么用

請注意上圖紅框,這個是一般啟動時配置的一個JVM選項,可以在 OOM 產生時生成一個堆的 dump,方便事后分析。如果沒有在啟動時配置,默認是關閉的。這里也顯示是禁用。

通過 Visual VM,可以實時變更該選項,右擊對應的 JVM 進程,在彈出菜單中選擇【在出現OOME時生成堆 Dump】

Java多功能Profiling工具JVisual VM怎么用

選擇之后,對應的概述處變為啟用

監視

在該 Tab 中會顯示 CPU,堆的使用,已裝入的類的情況,以及線程的活動情況等。關鍵是這里有兩個按鈕【執行垃圾回收】和【堆 Dump】。

垃圾回收會進行一次 Full GC,堆的Dump會生成一個當前的dump文件供分析。

Java多功能Profiling工具JVisual VM怎么用

線程

線程 Tab 會將當前進程的所有線程按時間線的形式開出來。可以根據不同的線程狀態進行查看。這里還可以進行線程的 Dump,和 jstack 功能一致,生成一個所有線程的運行調用圖。(jstack,可以查看前面的文章了解。Java七武器系列霸王槍 -- 線程狀態分析 jstack)

抽樣器

可以按照 CPU 和內存進行抽樣, 和Profiler類似,我們后面介紹。

Profiler

在眾多功能中,該功能可用于進行應用的 Profiling,分析應用方法的占用時間,內存中各個類的對象數量及大小等。

下方的圖是CPU profiling,分析方法的執行時間。

Java多功能Profiling工具JVisual VM怎么用

這張圖是內存的 profiling,顯示對象在內存中的數量及大小

Java多功能Profiling工具JVisual VM怎么用

通過這兩種 profiling,對于應用中有內存占用較多的情況發生時,可以觀察是哪些對象占用,是否有些代碼中存在的總是導致生成的大量無用的對象等。

這兩個功能和工具 MAT 的幾個功能類似。

Visual GC

注意:該 Tab 需要安裝插件后才能顯示。

一直以來,Java 的 GC 對于我們來說只能通過在命令行中展示的方式,或者是從 gc log 里查看一些 執行情況,Visual VM 的 Visual GC 插件,可以讓我們更直觀的觀察 堆的占用,GC 的執行情況等,是個可視化的GC 查看工具。

Java多功能Profiling工具JVisual VM怎么用

通過這個工具,能夠觀察堆各個區域的大小,占用情況等。比如在配置了Xms, PermSize, 或者一些 xxxRation之類的,具體分到各個代的大小是多少,除了計算之外,可以在這里直觀的查看。

同時,在每個每個 Gen 旁邊,都有顯示 GC 的執行次數和時間。

BTrace

前面的文章寫過使用 BTrace 分析總是,當時是介紹通過命令行的方式。在 Visual VM 的插件里,也有 BTrace 的插件,安裝之后,可以在本地的 JVM 進程上右擊選擇 【Trace application】,就會打開該 Tab,然后在窗口中直接編譯 Trace 腳本,執行結果也會在窗口中顯示。

Java多功能Profiling工具JVisual VM怎么用

注意這里有一個Unsafe的開關,可以使用BTrace的更多操作,靠選擇checkbox是打不開的。需要在@BTrace注解后增加內容,格式如下:

@BTrace(unsafe=true)

這樣即可,checkbox會自動選中。

堆Dump

生成堆dump之后,相當于對當前的堆做了一個鏡像,可以基于此分析應用內的一些問題。

整個dump中,除了摘要外,還有類,實例數等和 Profiler 中實時內容一致。此外,還包含線程的 stackTrace。

Java多功能Profiling工具JVisual VM怎么用

在類中雙擊任意一個要關注的,會打開實例數視圖,顯示該類對應的各個實例的數據

Java多功能Profiling工具JVisual VM怎么用

在OQL控制臺中可以通過招待OQL來查看對象的信息,和前面 SA中介紹的類似。(Java七武器系列長生劍 -- Java虛擬機的顯微鏡 Serviceability Agent)

Java多功能Profiling工具JVisual VM怎么用

發現沒有,其實 JDK 提供的這些工具中,有許多功能都是相同的,通過統一的接口,在不同的應用中提供相應的數據,一處水源供全球。

上述就是小編為大家分享的Java多功能Profiling工具JVisual VM怎么用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新密市| 阜城县| 华阴市| 越西县| 青冈县| 阿瓦提县| 曲麻莱县| 万盛区| 安岳县| 丰镇市| 麻城市| 丽江市| 阿尔山市| 高要市| 双桥区| 习水县| 富民县| 普格县| 三河市| 温泉县| 佛坪县| 腾冲县| 和硕县| 图片| 六枝特区| 弥勒县| 当涂县| 奇台县| 宕昌县| 崇仁县| 察哈| 光山县| 大厂| 高要市| 酒泉市| 岳阳县| 施甸县| 高雄市| 三明市| 崇阳县| 雅安市|