日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8款JVM性能调优监控工具(提高开发效率)

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8款JVM性能调优监控工具(提高开发效率) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在平時的開發當中我們總是會遇到各種各樣的問題,比如說內存泄漏、死鎖、CPU等。遇到問題不可怕,關鍵是我們如何去排查這些錯誤,對癥下藥才是根本。不過對于很多人來說,往往找不到這些問題的根本所在,因此這篇文章主要是讓我們掌握一些工具來分析到底是哪里出現了問題。

在之前的文章中,主要是分析了JVM的內存結構、類加載機制和垃圾回收機制。文章的順序也是循序漸進的,從這篇文章當中我們主要是分析JDK自帶的工具,把理論應用于實踐。

首先我們先對幾種要講的工具進行一個概述,然后再分別分析:

一、性能監控工具概述

工具主要是為了解決問題而生的,就是由于我們的程序存在著一些性能問題,才有了這些工具。其實當我們在下載完成JDK之后,那些工具就被SUN公司隨之送給我們了。

我們可以在我們的JDK安裝目錄,下看看會有很多這樣的工具。

我們會發現很多這樣的exe文件,這里面有很多都是性能監控工具。我們就抽出來幾個進行講解。

常見的幾個工具都已經列出來了,還有一些其他的工具,其實用起來比JDK自帶的還要好,我會在今后的文章中列出來。OK,我們就一個一個去分析一下這些工具是干嘛的,以及如何去使用的。

二、工具

1、jps:虛擬機進程狀況工具

jps主要用來輸出JVM中運行的進程狀態信息。語法格式如下:

jps [options] [hostid]

第一個參數:options

-q 不輸出類名、Jar名和傳入main方法的參數-m 輸出傳入main方法的參數-l 輸出main類或Jar的全限名-v 輸出傳入JVM的參數

第二個參數:hostid

主機或者是服務器的id,如果不指定,就默認為當前的主機或者是服務器。

我是在Windows10系統下測試的,當然你可以在linux下試驗,方式是一樣的,結果可能有不同。你可以選擇不同的參數選項來進行測試。打開CMD輸入相應命令

2、jstack:堆棧跟蹤工具

jstack用于生成虛擬機當前時刻的線程快照。語法格式如下:

jstack [option] vmid

第一個參數:option

第二個參數:vmid

vmid是Java虛擬機ID,在Linux/Unix系統上一般就是進程ID。

我們直接在CMD中操作一下:

3、jstat:虛擬機統計信息監控工具

jstat監視虛擬機各種運行狀態信息,可以顯示本地或者是遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據。語法格式如下:

jstat [ generalOption | outputOptions vmid [interval] [count]] ]

第一個參數:generalOption | outputOptions

這個參數表示的option,代表著用戶希望查詢的虛擬機信息,分為類加載、垃圾收集、運行期編譯狀況3類。

第二個參數:vmid

vmid是Java虛擬機ID,在Linux/Unix系統上一般就是進程ID。

第三個參數:interval

interval是采樣時間間隔,

第四個參數:count

count表示的是采樣數。

下面我們就是用一下這個工具,打開我們的CMD,輸入相應的命令:

4、jinfo:實時地查看和調整虛擬機各項參數

命令格式:

jinfo [option] pid

第一個參數:option

第二個參數:pid

指定顯示的進程id。

在CMD中進行測試:

5、jmap:生成虛擬機的內存轉儲快照(heapdump文件)

jmap(Memory Map for Java,內存映像工具),用于生成堆轉存的快照,一般是heapdump或者dump文件。如果不適用jmap命令,可以使用-XX:+HeapDumpOnOutOfMemoryError參數,當虛擬機發生內存溢出的時候可以產生快照。或者使用kill -3 pid也可以產生。jmap的作用并不僅僅是為了獲取dump文件,它可以查詢finalize執行隊列,java堆和永久代的詳細信息,如空間使用率,當前用的哪種收集器。命令格式如下:

jmap [option] vmid

第一個參數:

第二個參數:vmid

vmid是Java虛擬機ID,在Linux/Unix系統上一般就是進程ID.

在cmd中測試:

6、jhat:分析內存轉儲快照,不推薦使用,而且慢

由于這個工具功能比較簡陋,運行起來也比較耗時,所以這個工具不推薦使用,推薦使用MAT。

7、JConsole:JMX的可視化管理工具

這個工具相比較前面幾個工具,使用率比較高,很重要。它是一個java GUI監視工具,可以以圖表化的形式顯示各種數據。并可通過遠程連接監視遠程的服務器VM。用java寫的GUI程序,用來監控VM,并可監控遠程的VM,非常易用,而且功能非常強。

在cmd里面輸入 jconsole,選則進程就可以了。(前提是在IDE工具先建立一個線程運行著)

然后我們選擇了相應的選項之后,進入這個工具就會出現下面這個界面

在上面有菜單,我們可以選擇其中一個進行查看,就可以了,這個用具用起來很方便,也是我之前用的比較多的工具。

8、VisualVM:多合一故障管理工具

這個工具也很牛bility。它同jconsole都是一個基于圖形化界面的、可以查看本地及遠程的JAVA GUI監控工具,Jvisualvm同jconsole的使用方式一樣,直接在命令行打入jvisualvm即可啟動,jvisualvm界面更美觀一些,數據更實時:

最上面也有菜單,你可以選擇不同的選項來展示。自己動手試一遍是最好的。

三、總結

這些工具就先寫這么多,在文章一開始我們其實已經發現了,jdk自帶的工具那是超級的多,而且隨著jdk版本的不斷更新,工具還有不斷加強增多的趨勢,想要每一個都掌握那太費時間了,我們遇到哪些問題去搜索一下,看看能用到哪些工具就可以了,列出的這幾種工具,對于初學者來說還是比較適用的。

總結

以上是生活随笔為你收集整理的8款JVM性能调优监控工具(提高开发效率)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。