主頁 >  其他 > JVM監控及診斷工具GUI篇之JProfiler

JVM監控及診斷工具GUI篇之JProfiler

2021-09-20 10:50:53 其他

目錄

一、概述

二、兩種資料采集方式

三、VM遙感監測視圖中相關監測資料

四、記憶體視圖(Live Memory)的分析

五、Heap Walker功能說明

六、CPU視圖功能說明

七、Threads視圖功能說明


一、概述

在運行Java的時候有時候想測驗運行時占用記憶體情況,這時候就需要使用測驗工具查看了,在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以測驗,而在IDEA中也有這么一個插件,就是JProfiler,JProfiler 是由 ej-technologies 公司開發的一款 Java 應用性能診斷工具,功能強大,但是收費,

特點:

  • 使用方便、界面操作友好(簡單且強大);
  • 對被分析的應用影響小(提供模板);
  • CPU,Thread,Memory分析功能尤其強大;
  • 支持對jdbc,noSql,jsp,servlet,socket等進行分析;
  • 支持多種模式(離線,在線)的分析;
  • 支持監控本地、遠程的JVM;
  • 跨平臺,擁有多種作業系統的安裝版本;

主要功能:

  • 1-方法呼叫:對方法呼叫的分析可以幫助您了解應用程式正在做什么,并找到提高其性能的方法;
  • 2-記憶體分配:通過分析堆上物件、參考鏈和垃圾收集能幫您修復記憶體泄露問題,優化記憶體使用;
  • 3-執行緒和鎖:JProfiler提供多種針對執行緒和鎖的分析視圖助您發現多執行緒問題;
  • 4-高級子系統:許多性能問題都發生在更高的語意級別上,例如,對于JDBC呼叫,您可能希望找出執行最慢的SQL陳述句,JProfiler支持對這些子系統進行集成分析;

官網地址:Java Profiler - JProfiler

二、兩種資料采集方式

  • Instrumentation(重構模式)

這是JProfiler全功能模式,在class加載之前,JProfier把相關功能代碼寫入到需要分析的class的bytecode中,對正在運行的jvm有一定影響,

  1. 優點:功能強大,在此設定中,呼叫堆疊資訊是準確的,
  2. 缺點:若要分析的class較多,則對應用的性能影響較大,CPU開銷可能很高(取決于Filter的控制),因此使用此模式一般配合Filter使用,只對特定的類或包進行分析,
  • Sampling(樣本采集)

類似于樣本統計,每隔一定時間(5ms)將每個執行緒堆疊中方法堆疊中的資訊統計出來,

  1. 優點:對CPU的開銷非常低,對應用影響小(即使你不配置任何Filter);
  2. 缺點:一些資料/特性不能提供(例如:方法的呼叫次數、執行時間);

注:JProfiler本身沒有指出資料的采集型別,這里的采集型別是針對方法呼叫的采集型別,因為JProfiler的絕大多數核心功能都依賴方法呼叫采集的資料,所以可以直接認為是JProfiler的資料采集型別,

如下圖,當我們打開JProfiler時,會彈出選擇哪一種資料采集方式:

下圖是樣本抽樣采集方式:

三、VM遙感監測視圖中相關監測資料

【a】概覽:展示記憶體、GC、類、執行緒、CPU等使用情況

【b】記憶體:可以選擇不同記憶體區域查看其使用情況,使用不同顏色區分空閑記憶體和已使用記憶體

【c】GC:顯示垃圾回識訓動,包括物件釋放的一條線和物件移動的一條線

【d】類資訊:顯示 JVM呼叫的類的總,分為過濾類和非過濾類

【e】執行緒:顯示 JVM中活著的執行緒總數,分為活動的執行緒和不活動的執行緒

【f】CPU:展示CPU利用率變化情況

四、記憶體視圖(Live Memory)的分析

JProfiler 的記憶體視圖部分可以提供動態的記憶體使用狀況更新視圖和顯示關于記憶體分配狀況資訊的視圖,所有的視圖都有幾個聚集層并且能夠顯示現有存在的物件和作為垃圾回收的物件,

(一)、所有物件 All Objects:顯示所有加載的類的串列和在堆上分配的實體數,只有Java 1.5 (JVMTI)才會顯示此視圖,要查看特定時間段物件的分配,并記錄分配的呼叫堆疊,請使用“記錄的物件視圖”,

有一個集合體等級選擇器,你可以在以下幾種型別中切換:

  1. 類(classes):每一行顯示一個單獨的類,這是默認的集合體型別
  2. 包(packages):每一行顯示一個單獨的包,子包不包含在內,在這個集合體等級內,表是樹形的,你可以點擊樹節點,查看其包含的類
  3. J2EE組件( J2EE components):每一行是一個 J2EE組件,此模式類似類模式中的過濾器,能夠讓你快速檢查應用中加載的 J2EE組件,

(二)、記錄物件 Record Objects:查看特定時間段物件的分配,并記錄分配的呼叫堆疊,

記錄的物件視圖可以根據物件的活動狀態進行過濾:

  1. 活動物件(Live objects) 只顯示當前在記憶體中的物件;
  2. 垃圾回收物件(Garbage collected objects) 被顯示被回收的物件;
  3. 活動的和垃圾回收物件(Live and garbage collected objects) 顯示所有被創建的物件;

(三)、分配訪問樹 Allocation Call Tree:顯示一棵請求樹或者方法、類、包或對已選擇類有帶注釋的分配資訊的J2EE組件,

(四)、分配熱點 Allocation Hot Spots:顯示一個串列,包括方法、類、包或分配已選類的J2EE組件,你可以標注當前值并且顯示差異值,對于每個熱點都可以顯示它的跟蹤記錄樹,

(五)、類追蹤器 Class Tracker:類跟蹤視圖可以包含任意數量的圖表,顯示選定的類和包的實體與時間,

五、Heap Walker功能說明

這個視圖主要追蹤應用程式運行程序中堆記憶體的使用情況,如下圖:

【a】類(Classes):顯示所有類和它們的實體

【b】索引(References):為單個物件和“顯示到垃圾回收根目錄的路徑”提供索引圖的顯示功能,還能提供合并輸入視圖和輸出視圖的功能

六、CPU視圖功能說明

JProfiler 提供不同的方法來記錄訪問樹以優化性能和細節,執行緒或者執行緒組以及執行緒狀況可以被所有的視圖選擇,所有的視圖都可以聚集到方法、類、包或J2EE組件等不同層上,

(一)、訪問樹 Call Tree:顯示一個積累的自頂向下的樹,樹中包含所有在JVM中已記錄的訪問佇列,JDBC,JMS和JNDI服務請求都被注釋在請求樹中,請求樹可以根據Servlet和JSP對URL的不同需要進行拆分,

(二)、熱點 Hot Spots:顯示消耗時間最多的方法的串列,對每個熱點都能夠顯示回溯樹,該熱點可以按照方法請求,JDBC,JMS和JNDI服務請求以及按照URL請求來進行計算,

(三)、 訪問圖 Call Graph:顯示一個從已選方法、類、包或J2EE組件開始的訪問佇列的圖,

(四)、 方法統計 Method Statistis:顯示一段時間內記錄的方法的呼叫時間細節,

七、Threads視圖功能說明

JProfiler通過對執行緒歷史的監控判斷其運行狀態,并監控是否有執行緒阻塞產生,還能將一個執行緒所管理的方法以樹狀形式呈現,方便對執行緒進行剖析,

(一)、執行緒歷史 Thread History:顯示一個與執行緒活動和執行緒狀態在一起的活動時間表,按照執行緒開始的順序顯示 JVM中所有執行緒狀態的詳細歷史資訊在視圖左手點,執行緒的名字固定顯示,其它部分是滾動度量工具,在水平軸上顯示時間,時間軸的開始時間與 JVM的第一個執行緒的時間保持一致,每個活動的執行緒用帶顏色的線標明,從執行緒開始到執行緒結束,

  • 顏色標識執行緒的狀態:
  1. 綠色:綠色表明執行緒正在運行并能接收 CPU時間,不表明執行緒正在消耗 CPU時間,只表明執行緒準備運行并且沒有阻塞或睡眠,執行緒被分配了多少 CPU時間,依賴于不同的其它因素,如總的系統負載,執行緒優先級和調度的運演算法則
  2. 橙色:橙色表示執行緒在等待,執行緒正在睡眠并等待計時器或其它執行緒喚醒
  3. 紅色:紅色表示執行緒阻塞,執行緒嘗試進入同步代碼區或由其它執行緒控制的同步方法
  4. 藍色:亮藍色表示執行緒在 Net I/O操作,執行緒在等待 JAVA庫的網路操作完成,在執行緒監聽 socket連接或者等待讀寫資料到 socket中時,會產生這種狀態,

(二)、 執行緒監控 Thread Monitor:顯示一個串列,包括所有的活動執行緒以及它們目前的活動狀況,

顯示的五列:

  1. Name:顯示執行緒名稱,如果執行緒沒有被特別命名,則使用 JVM提供的名稱,想讓此視圖更加有用,最好將你自己創建的執行緒使用 setName() 進行命名,
  2. Group:顯示與此執行緒相關的執行緒組的名稱
  3. Start time:示執行緒開始的時間,時間是根據 JVM中第一個執行緒創建的時間還計算的,
  4. Creating thread:顯示執行緒的名字和創建此執行緒的執行緒組,
  5. Status:顯示執行緒的狀態,相當于執行緒歷史視圖中的狀態報告

(三)、執行緒轉儲 Thread Dumps:顯示所有執行緒的堆疊跟蹤,

執行緒分析主要關心三個方面:

1.web容器的執行緒最大數,比如:Tomcat的執行緒容量應該略大于最大并發數;

2.執行緒阻塞;

3.執行緒死鎖;

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301493.html

標籤:其他

上一篇:【鴻蒙應用開發】-入門

下一篇:【selenium定位不了元素】selenium中xpath和css都定位不了元素,原來是你跳轉了視窗

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more