<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:你用過哪些JDK自帶的命令行工具

          共 2017字,需瀏覽 5分鐘

           ·

          2020-09-05 06:55

          本文基于HotSpot虛擬機,JDK版本1.8.0_171,windows系統(tǒng)

          目錄

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

          二、jstat:虛擬機統(tǒng)計信息監(jiān)視工具

          三、jmap:Java內(nèi)存映像工具?

          四、jhat:虛擬機堆轉(zhuǎn)儲快照分析工具?

          五、jstack:Java堆棧跟蹤工具?

          六、jinfo:Java配置信息工具


          java和javac這兩個命令行工具我們應(yīng)該都很熟悉,但是除了這兩個工具jdk/bin里面還提供了很多工具給我們使用,今天就簡單介紹有關(guān)虛擬機監(jiān)控且助于故障排查的工具。

          實際上這些工具大多數(shù)就是jdk/lib/tool.jar的封裝,內(nèi)部就是調(diào)用tool里面的內(nèi)容,所以工具體積都不大,而且在linux版本的jdk中有些工具就是用shell寫的。


          1.jps(JVM Process Status Tool)

          用于顯示指定系統(tǒng)內(nèi)所有HotSpot虛擬機進程,并且能顯示虛擬機執(zhí)行主類以及本地虛擬機唯一ID(LVMID,Local Virtual Machine Identifier)功能單一,但是其他因為其他工具都需要指明LVMID(來確定要監(jiān)控的虛擬機進程,所以都需要用到它。對于本地的虛擬機進程來說LVMID和操作系統(tǒng)的進程ID一致。

          使用格式:jps [options] [hostid]

          樣例:


          jps可以通過RMI協(xié)議查詢遠程開啟RMI服務(wù)的虛擬機進程,hostid為RMI注冊表中注冊的主機名。

          2.jstat(JVM Statistics Monitoring Tool)

          用于監(jiān)視虛擬機各種運行狀態(tài)信息的工具,可以顯示本地或者遠程的虛擬機進程類裝載、內(nèi)存、GC、JIT等運行數(shù)據(jù),在沒有GUI圖像界面的服務(wù)器上,主要就是用它在運行期定位性能問題。

          使用格式 :jstat [option vmid [interval [s|ms] [count]] ]


          interval表示查詢的間隔,?s|ms是秒和毫秒(默認是毫秒,即不寫單位是毫秒),count表示查詢的次數(shù)。

          樣例:表示每5秒鐘查看一次LVMID為34216的虛擬機進程的GC情況,一共查詢10次


          3.jmap (Memory Map for Java)

          用于生成堆轉(zhuǎn)儲快照(heapdump或dump文件),說白了就是把java堆使用情況快照一份導(dǎo)出來供我們查看,用來排查問題。

          使用格式 :jmap [option] vmid

          樣例


          4.jhat (JVM Heap Analysis Tool)

          這個就是和jmap搭配使用的,jmap導(dǎo)出來的堆快照文件用jhat 打開分析

          使用格式:?jhat [-stack ] [-refs ] [-port ] [-baseline ] [-debug ] [-version] [-h|-help]


          樣例:

          查看分析結(jié)果


          5.jstack (Stack Trace for Java)

          用于生成虛擬機當前時刻線程快照(threaddump或javacore)。主要用來定位線程出現(xiàn)長時間停頓的原因,判斷死鎖啊,死循環(huán)的等。通過jstack就可知各線程的調(diào)用堆棧情況。

          使用格式:jstack [option] vmid


          樣例:


          6.jinfo (Configuration Info for Java)

          用來查看和調(diào)整虛擬機各項參數(shù)

          使用格式:jinfo [option] pid

          可以通過-flag[+|-] name 添加和刪除一些參數(shù),或者-flag name =value修改一些參數(shù),但是很多參數(shù)是不允許修改的

          樣例:


          結(jié)語

          本文主要是簡單介紹常見的幾個JDK命令行工具,建議使用的時候自己通過命令 -option?查看每個選項實際的意思再使用,畢竟這么選項一般也記不住。


          而且這些工具有一些算比較簡陋了例如jhat ,這玩意分析的簡陋,界面也簡陋不夠強大和專業(yè)。所以這些個命令行工具以了解和大概明白其作用為主。


          像平日里一般用于分析都用JConsole、VisualVM(All-in-One Java Troubleshooting Tool)這種可視化工具來分析故障監(jiān)控性能等,有些在IDE里面的也有用MAT等工具分析。

          本文參考《深入理解JAVA虛擬機》第四章


          如有錯誤歡迎指正!

          個人公眾號:yes的練級攻略

          有相關(guān)面試進階(分布式、性能調(diào)優(yōu)、經(jīng)典書籍pdf)資料等待領(lǐng)取

          —?【 THE END 】—
          本公眾號全部博文已整理成一個目錄,請在公眾號里回復(fù)「m」獲取!


          3T技術(shù)資源大放送!包括但不限于:Java、C/C++,Linux,Python,大數(shù)據(jù),人工智能等等。在公眾號內(nèi)回復(fù)「1024」,即可免費獲取!!




          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚欧成人一区视频 | 精品国产乱码一区二区三区小黄书 | 亚洲精品一级黄色电影 | 国产精品乱码一区二区三区 | 韩国毛片在线 |