大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java虛擬機(jī)調(diào)優(yōu)的工具

Java虛擬機(jī)調(diào)優(yōu)的工具

更新時(shí)間:2021-05-19 11:42:46 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1020次

工具做為圖形化界面來展示更能直觀的發(fā)現(xiàn)問題,另一方面一些耗費(fèi)性能的分析(dump文件分析)一般也不會(huì)在生產(chǎn)直接分析,往往dump下來的文件達(dá)1G左右,人工分析效率較低,因此利用工具來分析jvm相關(guān)問題,常常可以到達(dá)事半功倍的效果來。

jvm監(jiān)控分析工具一般分為兩類,一種是jdk自帶的工具,一種是第三方的分析工具。jdk自帶工具一般在jdk bin目錄下面,以exe的形式直接點(diǎn)擊就可以使用,其中包含分析工具已經(jīng)很強(qiáng)大,幾乎涉及了方方面面,但是我們最常使用的只有兩款:jconsole.exe和jvisualvm.exe;第三方的分析工具有很多,各自的側(cè)重點(diǎn)不同,比較有代表性的:MAT(Memory Analyzer Tool)、GChisto等。

對(duì)于大型 JAVA 應(yīng)用程序來說,再精細(xì)的測(cè)試也難以堵住所有的漏洞,即便我們?cè)跍y(cè)試階段進(jìn)行了大量卓有成效的工作,很多問題還是會(huì)在生產(chǎn)環(huán)境下暴露出來,并且很難在測(cè)試環(huán)境中進(jìn)行重現(xiàn)。JVM 能夠記錄下問題發(fā)生時(shí)系統(tǒng)的部分運(yùn)行狀態(tài),并將其存儲(chǔ)在堆轉(zhuǎn)儲(chǔ) (Heap Dump) 文件中,從而為我們分析和診斷問題提供了重要的依據(jù)。其中VisualVM和MAT是dump文件的分析利器。

jdk自帶的工具

jconsole

Jconsole(Java Monitoring and Management Console)是從java5開始,在JDK中自帶的java監(jiān)控和管理控制臺(tái),用于對(duì)JVM中內(nèi)存,線程和類等的監(jiān)控,是一個(gè)基于JMX(java management extensions)的GUI性能監(jiān)測(cè)工具。jconsole使用jvm的擴(kuò)展機(jī)制獲取并展示虛擬機(jī)中運(yùn)行的應(yīng)用程序的性能和資源消耗等信息。

直接在jdk/bin目錄下點(diǎn)擊jconsole.exe即可啟動(dòng)

在彈出的框中可以選擇本機(jī)的監(jiān)控本機(jī)的java應(yīng)用,也可以選擇遠(yuǎn)程的java服務(wù)來監(jiān)控,如果監(jiān)控遠(yuǎn)程服務(wù)需要在tomcat啟動(dòng)腳本中添加如下代碼:

 -Dcom.sun.management.jmxremote.port=6969  
 -Dcom.sun.management.jmxremote.ssl=false  
 -Dcom.sun.management.jmxremote.authenticate=false

連接進(jìn)去之后,就可以看到j(luò)console概覽圖和主要的功能:概述、內(nèi)存、線程、類、VM、MBeans

概述,以圖表的方式顯示出堆內(nèi)存使用量,活動(dòng)線程數(shù),已加載的類,CUP占用率的折線圖,可以非常清晰的觀察在程序執(zhí)行過程中的變動(dòng)情況。

內(nèi)存,主要展示了內(nèi)存的使用情況,同時(shí)可以查看堆和非堆內(nèi)存的變化值對(duì)比,也可以點(diǎn)擊執(zhí)行GC來處罰GC的執(zhí)行

線程,主界面展示線程數(shù)的活動(dòng)數(shù)和峰值,同時(shí)點(diǎn)擊左下方線程可以查看線程的詳細(xì)信息,比如線程的狀態(tài)是什么,堆棧內(nèi)容等,同時(shí)也可以點(diǎn)擊“檢測(cè)死鎖”來檢查線程之間是否有死鎖的情況。

類,主要展示已加載類的相關(guān)信息。

VM 概要,展示JVM所有信息總覽,包括基本信息、線程相關(guān)、堆相關(guān)、操作系統(tǒng)、VM參數(shù)等。

Mbean,查看Mbean的屬性,方法等。

VisualVM

簡(jiǎn)介

VisualVM 是一個(gè)工具,它提供了一個(gè)可視界面,用于查看 Java 虛擬機(jī) (Java Virtual Machine, JVM) 上運(yùn)行的基于 Java 技術(shù)的應(yīng)用程序(Java 應(yīng)用程序)的詳細(xì)信息。VisualVM 對(duì) Java Development Kit (JDK) 工具所檢索的 JVM 軟件相關(guān)數(shù)據(jù)進(jìn)行組織,并通過一種使您可以快速查看有關(guān)多個(gè) Java 應(yīng)用程序的數(shù)據(jù)的方式提供該信息。您可以查看本地應(yīng)用程序以及遠(yuǎn)程主機(jī)上運(yùn)行的應(yīng)用程序的相關(guān)數(shù)據(jù)。此外,還可以捕獲有關(guān) JVM 軟件實(shí)例的數(shù)據(jù),并將該數(shù)據(jù)保存到本地系統(tǒng),以供后期查看或與其他用戶共享。

VisualVM 是javajdk自帶的最牛逼的調(diào)優(yōu)工具了吧,也是我平時(shí)使用最多調(diào)優(yōu)工具,幾乎涉及了jvm調(diào)優(yōu)的方方面面。同樣是在jdk/bin目錄下面雙擊jvisualvm.exe既可使用,啟動(dòng)起來后和jconsole 一樣同樣可以選擇本地和遠(yuǎn)程,如果需要監(jiān)控遠(yuǎn)程同樣需要配置相關(guān)參數(shù);

VisualVM可以根據(jù)需要安裝不同的插件,每個(gè)插件的關(guān)注點(diǎn)都不同,有的主要監(jiān)控GC,有的主要監(jiān)控內(nèi)存,有的監(jiān)控線程等。

第三方調(diào)優(yōu)工具

MAT

MAT是什么?

MAT(Memory Analyzer Tool),一個(gè)基于Eclipse的內(nèi)存分析工具,是一個(gè)快速、功能豐富的Java heap分析工具,它可以幫助我們查找內(nèi)存泄漏和減少內(nèi)存消耗。使用內(nèi)存分析工具從眾多的對(duì)象中進(jìn)行分析,快速的計(jì)算出在內(nèi)存中對(duì)象的占用大小,看看是誰阻止了垃圾收集器的回收工作,并可以通過報(bào)表直觀的查看到可能造成這種結(jié)果的對(duì)象。

通常內(nèi)存泄露分析被認(rèn)為是一件很有難度的工作,一般由團(tuán)隊(duì)中的資深人士進(jìn)行。不過要介紹的 MAT(Eclipse Memory Analyzer)被認(rèn)為是一個(gè)“傻瓜式“的堆轉(zhuǎn)儲(chǔ)文件分析工具,你只需要輕輕點(diǎn)擊一下鼠標(biāo)就可以生成一個(gè)專業(yè)的分析報(bào)告。和其他內(nèi)存泄露分析工具相比,MAT 的使用非常容易,基本可以實(shí)現(xiàn)一鍵到位,即使是新手也能夠很快上手使用。

MAT以eclipse 插件的形式來安裝,具體的安裝過程就不在描述了,可以利用visualvm或者是 jmap命令生產(chǎn)堆文件,導(dǎo)入eclipse mat中生成分析報(bào)告:

生產(chǎn)這會(huì)報(bào)表的同時(shí)也會(huì)在dump文件的同級(jí)目錄下生成三份(dump_Top_Consumers.zip、dump_Leak_Suspects.zip、dump_Top_Components.zip)分析結(jié)果的html文件,方便發(fā)送給相關(guān)同事來查看。

需要關(guān)注的是下面的Actions、Reports、Step by Step區(qū)域:

Histogram:列出內(nèi)存中的對(duì)象,對(duì)象的個(gè)數(shù)以及大小,支持正則表達(dá)式查找,也可以計(jì)算出該類所有對(duì)象的retained size

Dominator Tree:列出最大的對(duì)象以及其依賴存活的Object (大小是以Retained Heap為標(biāo)準(zhǔn)排序的)

Top Consumers : 通過圖形列出最大的object

duplicate classes :檢測(cè)由多個(gè)類裝載器加載的類

Leak Suspects :內(nèi)存泄漏分析

Top Components: 列出大于總堆數(shù)的百分之1的報(bào)表。

Component Report:分析對(duì)象屬于同一個(gè)包或者被同一個(gè)類加載器加載

以上只是一個(gè)初級(jí)的介紹,mat還有更強(qiáng)大的使用,比如對(duì)比堆內(nèi)存,在生產(chǎn)環(huán)境中往往為了定位問題,每隔幾分鐘dump出一下內(nèi)存快照,隨后在對(duì)比不同時(shí)間的堆內(nèi)存的變化來發(fā)現(xiàn)問題。

GChisto

GChisto是一款專業(yè)分析gc日志的工具,可以通過gc日志來分析:Minor GC、full gc的時(shí)間、頻率等等,通過列表、報(bào)表、圖表等不同的形式來反應(yīng)gc的情況。雖然界面略顯粗糙,但是功能還是不錯(cuò)的。

配置好本地的jdk環(huán)境之后,雙擊GChisto.jar,在彈出的輸入框中點(diǎn)擊 add 選擇gc.log日志

GC Pause Stats:可以查看GC 的次數(shù)、GC的時(shí)間、GC的開銷、最大GC時(shí)間和最小GC時(shí)間等,以及相應(yīng)的柱狀圖

GC Pause Distribution:查看GC停頓的詳細(xì)分布,x軸表示垃圾收集停頓時(shí)間,y軸表示是停頓次數(shù)。

GC Timeline:顯示整個(gè)時(shí)間線上的垃圾收集

不過這款工具已經(jīng)不再維護(hù),不能識(shí)別最新jdk的日志文件。

gcviewer

GCViewer也是一款分析小工具,用于可視化查看由Sun / Oracle, IBM, HP 和 BEA Java 虛擬機(jī)產(chǎn)生的垃圾收集器的日志,gcviewer個(gè)人感覺顯示 的界面比較亂沒有GChisto更專業(yè)一些。

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java虛擬機(jī)調(diào)優(yōu)的工具",希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美在线操 | 亚洲免费色视频 | 久久99久久精品国产99热 | 永久黄网站色视频免费 | 久久国产精品老人性 | 狠狠大日本亚洲香蕉亚洲 | 欧美一级毛片欧美一级 | 久久精品99成人中文字幕880 | 91好色视频| 久久久久久久综合色一本 | 色综合国产| 爱我久久国产精品 | 伊人精品在线观看 | 在线视频一二三区 | 日韩欧美在线免费观看 | 看美女毛片 | 国产免费区| 特级理论片 | 国产在线视频99 | 99热在线观看免费 | 妞干网这里只有精品 | 日日综合网 | 日本精品久久久久久久 | 亚洲国产精品久久日 | 成年女人免费视频播放77777 | 欧美同房免姿势108费视频 | 国产毛片一级 | 最新国产午夜精品视频不卡 | 黄色片免费在线观看视频 | 国产亚洲精品福利片 | 亚洲国产成人私人影院 | 福利午夜最新 | 亚洲综合日韩精品欧美综合区 | 色中文在线| 成人国产三级在线播放 | 久久99免费 | 一级毛片在线播放 | 亚洲精品区在线播放一区二区 | 日本人一级毛片免费视频 | 久久精品国产亚洲妲己影院 | 全免费午夜一级毛片真人 |