国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

這篇具有很好參考價值的文章主要介紹了【JVM 監(jiān)控工具】性能診斷--JProfiler的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景

性能診斷是軟件工程師在日常工作中需要經(jīng)常面對和解決的問題,在用戶體驗至上的今天,解決好應用的性能問題能帶來非常大的收益。Java 作為最流行的編程語言之一,其應用性能診斷一直受到業(yè)界廣泛關(guān)注??赡茉斐?Java 應用出現(xiàn)性能問題的因素非常多,例如線程控制、磁盤讀寫、數(shù)據(jù)庫訪問、網(wǎng)絡I/O、垃圾收集等。想要了定位這些問題,一款優(yōu)秀的性能診斷工具必不可少。本文將介紹 Java 性能診斷過程中的常用工具,并重點介紹其中的優(yōu)秀代表 JProfiler 的基本原理和最佳實踐(本文所做的調(diào)研基于jprofiler10.1.4)。

一、Java 性能診斷工具簡介

在 Java 的世界里,有許多診斷工具可供選擇,既包括像 jmap、jstat 這樣的簡單命令行工具,又包括 JVisualvm、JProfiler 等圖形化綜合診斷工具,同時還有 SkyWalking、ARMS 這樣的針對分布式應用的性能監(jiān)控系統(tǒng)。下面分別對其進行介紹。

二、簡單命令行工具

JDK 內(nèi)置了許多命令行工具,它們可用來獲取目標 JVM 不同方面、不同層次的信息。

  • jinfo - 用于實時查看和調(diào)整目標 JVM 的各項參數(shù)。
  • jstack - 用于獲取目標 Java 進程內(nèi)的線程堆棧信息,可用來檢測死鎖、定位死循環(huán)等。
  • jmap - 用于獲取目標 Java 進程的內(nèi)存相關(guān)信息,包括 Java 堆各區(qū)域的使用情況、堆中對象的統(tǒng)計信息、類加載信息等。
  • jstat - 一款輕量級多功能監(jiān)控工具,可用于獲取目標 Java 進程的類加載、JIT 編譯、垃圾收集、內(nèi)存使用等信息。
  • jcmd - 相比 jstat 功能更為全面的工具,可用于獲取目標 Java 進程的性能統(tǒng)計、JFR、內(nèi)存使用、垃圾收集、線程堆棧、JVM 運行時間等信息。

三、圖形化綜合診斷工具

使用上述命令行工具或組合能幫您獲取目標 Java 應用性能相關(guān)的基礎(chǔ)信息,但它們存在下列局限:

  1. 無法獲取方法級別的分析數(shù)據(jù),如方法間的調(diào)用關(guān)系、各方法的調(diào)用次數(shù)和調(diào)用時間等(這對定位應用性能瓶頸至關(guān)重要)。
  2. 要求用戶登錄到目標 Java 應用所在的宿主機上,使用起來不是很方便。
  3. 分析數(shù)據(jù)通過終端輸出,結(jié)果展示不夠直觀。

下面介紹幾款圖形化的綜合性能診斷工具。

JVisualvm

JVisualvm 是 JDK 內(nèi)置的可視化性能診斷工具,它通過 JMX、jstatd、Attach API 等方式獲取目標 JVM 的分析數(shù)據(jù),包括 CPU 使用率、內(nèi)存使用量、線程堆棧信息等。此外,它還能直觀地展示 Java 堆中各對象的數(shù)量和大小、各 Java 方法的調(diào)用次數(shù)和執(zhí)行時間等。

更多可參考我之前寫的文章:【JVM 監(jiān)控工具】JVisualVM的使用

JProfiler

JProfiler 是由 ej-technologies 公司開發(fā)的一款 Java 應用性能診斷工具。它聚焦于四個重要主題上。

  • 方法調(diào)用 - 對方法調(diào)用的分析可以幫助您了解應用程序正在做什么,并找到提高其性能的方法。
  • 內(nèi)存分配 - 通過分析堆上對象、引用鏈和垃圾收集能幫您修復內(nèi)存泄漏問題,優(yōu)化內(nèi)存使用。
  • 線程和鎖 - JProfiler 提供多種針對線程和鎖的分析視圖助您發(fā)現(xiàn)多線程問題。
  • 高級子系統(tǒng) - 許多性能問題都發(fā)生在更高的語義級別上。例如,對于JDBC調(diào)用,您可能希望找出執(zhí)行最慢的 SQL 語句。JProfiler 支持對這些子系統(tǒng)進行集成分析。

JConsole

使用JConsole監(jiān)控進程、線程、內(nèi)存、cpu、類情況

四、分布式應用性能診斷

如果只需要診斷單機 Java 應用的性能瓶頸,上面介紹的診斷工具就已經(jīng)夠用了。但隨著現(xiàn)代系統(tǒng)架構(gòu)逐漸從單體轉(zhuǎn)變?yōu)榉植际健⑽⒎?,單純使用上述工具往往無法滿足需求,這時就需要借助 Jaeger、ARMS、SkyWalking 這些分布式追蹤系統(tǒng)提供的全鏈路追蹤功能。分布式追蹤系統(tǒng)種類繁多,但實現(xiàn)原理都大同小異,它們通過代碼埋點的方式記錄 tracing 信息,通過 SDK 或 agent 將記錄的數(shù)據(jù)傳輸至中央處理系統(tǒng),最后提供 query 接口對結(jié)果進行展示和分析。

五、IDEA中設(shè)置JProfiler

JProfiler是什么

? JProfiler直覺式的GUI讓你可以找到性能瓶頸、抓出內(nèi)存漏失(memory leaks)、并解決執(zhí)行緒的問題。它讓你得以對heap walker作資源回收器的root analysis,可以輕易找出內(nèi)存漏失;heap快照(snapshot)模式讓未被參照(reference)的對象、稍微被參照的對象、或在終結(jié)(finalization)隊列的對象都會被移除;整合精靈以便剖析瀏覽器的Java外掛功能。

功能

  • 本地會話實時分析模式
    用戶一旦定義好了其應用程序啟動方式,JProfiler即能對之進行設(shè)置,用戶即刻便能從設(shè)置好的JVM中看到實時數(shù)據(jù)。用戶若不想進行會話配置,其可以從多個IDE插件中選擇其最喜歡的那個對應用程序進行配置。

  • 遠程會話實時分析模式
    通過修改Java開始命令行方式的VM參數(shù),用戶可使任意Java應用程序監(jiān)聽來自的JProfiler GUI的連接。該設(shè)置程序不但可以在本地計算機上運行,還可以在網(wǎng)絡中作為某個設(shè)置程序的附加程序使用。此外,JProfiler還提供了相當多的集成向?qū)?,可用于主流的可以幫助用戶安裝和設(shè)置其應用程序的應用程序服務器。

  • 離線分析模式
    用戶無需通過JProfiler GUI連接應用程序即可對之進行設(shè)置。在離線設(shè)置模式下,用戶可以使用功能強大的JProfiler觸發(fā)系統(tǒng)或者JProfiler’ API對設(shè)置代理進行控制,然后將快照保存入磁盤。稍后用戶便可使用命令行導出工具或者螞蟻任務導出工具,在JProfiler GUI或編程方式的設(shè)置導出視圖中打開這些快照。

  • 快照比較
    在JProfiler中,用戶可以將當前的所有設(shè)置數(shù)據(jù)保存為一個快照存入磁盤中。JProfiler提供了豐富的比較功能以對比兩個或者多個快照之間的不同。用戶可從編程的命令行比較工具和ant task比較工具中選擇其一創(chuàng)建對比報告。

  • 查看HPROF快照
    JProfiler能打開用JVM工具(比如jconsole、 jmap或通過-XX:+HeapDumpOnOutOfMemoryError JVM參數(shù)觸發(fā))創(chuàng)建的HPROF快照文件

安裝

IEAR下載插件JPrifiler
【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

安裝完插件記得重啟IDEA.出現(xiàn)下圖標準表示安裝成功

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

congqi官網(wǎng)下載JProfiler客戶端并安裝。 官網(wǎng)下載地址:https://www.ej-technologies.com/download/jprofiler/files

使用

生成快照

public class vmtest {
    public static int i=1;
    public static void main(String[] args) {
        final long max= Runtime.getRuntime().maxMemory();//jvm的視圖使用的最大內(nèi)存
        final long total = Runtime.getRuntime().totalMemory();//jvm初始化內(nèi)存
        final int cpu = Runtime.getRuntime().availableProcessors();//cpu核數(shù)
    /*-Xms10m  -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -Xss2m
    * 表示配置jvm初始化內(nèi)存為10M,最大內(nèi)存為10M,打印GC詳細文件,生成錯誤文件
    * */
        System.out.println("虛擬機獲得最大內(nèi)存"+(max/1024/1024)+"m");
        System.out.println("初始最大內(nèi)存"+(total/1024/1024)+"m");
        System.out.println("本機核數(shù):"+cpu);
        String s = new String();
        while(true){
           final byte[] bytes = new byte[1024 * 1024*1024];
       }
    }
}

配置VM

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

運行程序

我們預期效果達到,堆內(nèi)存超出。
【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

打開項目目錄找到生成的快照,并用JProfiler工具打開

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

進入JProfiler

查看堆中的實例

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

查看在哪里報錯

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

本地運行

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

進入JProfiler

可以查程序運行時的實時數(shù)據(jù)

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

生成快照

進入JProfiler

可以查程序運行時的實時數(shù)據(jù)

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用

生成快照

【JVM 監(jiān)控工具】性能診斷--JProfiler的使用文章來源地址http://www.zghlxwxcb.cn/news/detail-482642.html

到了這里,關(guān)于【JVM 監(jiān)控工具】性能診斷--JProfiler的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • JVM-jvisualvm性能監(jiān)控可視化工具使用與eden-s0-s1分配分析(三)

    JVM-jvisualvm性能監(jiān)控可視化工具使用與eden-s0-s1分配分析(三)

    目錄 第一步:安裝jvisualvm ?第二步:安裝VisualvmGc插件 方式一:jvisualvm工具直接下載安裝 方式二:去官網(wǎng)下載導入安裝 總結(jié) 第三步:idea安裝VisualvM Launcher插件 第四步:演示young中eden、s0、s1垃圾回收過程 1、配置jvm堆大小 ?2、啟動一個項目 3、打開jvisualvm 第五步:jvisualvm性

    2024年02月11日
    瀏覽(23)
  • JVM 性能監(jiān)控與故障處理工具

    JVM 性能監(jiān)控與故障處理工具

    基礎(chǔ)工具 jps:虛擬機進程狀態(tài)工具 jps 命令格式: jps [options] [hostid] 命令可選項解釋: 選項 解釋 -q 只輸出 LVMID,省略主類的名稱 -m 輸出傳給 main 函數(shù)的參數(shù) -l 輸出主類的全名,如果進程運行的 JAR 包,則輸出 JAR 包的路徑 -v 輸出虛擬機進程啟動時的 JVM 參數(shù) jstat:虛擬機統(tǒng)

    2024年02月07日
    瀏覽(24)
  • JVM分析工具JProfiler介紹及安裝

    JVM分析工具JProfiler介紹及安裝

    目錄 一、什么是JProfiler? 二、JProfiler?功能結(jié)構(gòu)? 1、分析代理 2、記錄數(shù)據(jù) 3、快照 三、安裝? JProfiler是一個專業(yè)的工具,用于分析運行中的JVM內(nèi)部發(fā)生的事情。當您的生產(chǎn)系統(tǒng)出現(xiàn)問題時,您可以在開發(fā)、質(zhì)量保證和消防任務中使用它。 JProfiler主要處理四個主題: 方法調(diào)

    2024年02月14日
    瀏覽(20)
  • JVM性能監(jiān)控之命令行工具全解

    JVM性能監(jiān)控之命令行工具全解

    性能診斷是軟件工程師在日常工作中需要經(jīng)常面對和解決的問題,在用戶體驗至上的今天,解決好應用的性能問題能帶來非常大的收益。 Java作為最流行的編程語言之一,其應用性能診斷一直受到業(yè)界的廣泛關(guān)注,可能造成Java應用出現(xiàn)性能問題的因素非常多,例如線程控制、

    2023年04月08日
    瀏覽(19)
  • JVM:性能監(jiān)控工具分析和線上問題排查實踐

    JVM:性能監(jiān)控工具分析和線上問題排查實踐

    在日常開發(fā)過程中,多少都會碰到一些jvm相關(guān)的問題,比如: 內(nèi)存溢出、內(nèi)存泄漏、cpu利用率飆升到100%、線程死鎖、應用異常宕機 等。 在這個日益內(nèi)卷的環(huán)境,如何運用好工具分析jvm問題,成為每個java攻城獅必備的技能。所以白夢特意整理了 jdk自帶分析工具的使用 ,以及

    2024年01月19日
    瀏覽(27)
  • Java線上故障排查(CPU、磁盤、內(nèi)存、網(wǎng)絡、GC)+JVM性能調(diào)優(yōu)監(jiān)控工具+JVM常用參數(shù)和命令

    Java線上故障排查(CPU、磁盤、內(nèi)存、網(wǎng)絡、GC)+JVM性能調(diào)優(yōu)監(jiān)控工具+JVM常用參數(shù)和命令

    根據(jù)服務部署和項目架構(gòu),從如下幾個方面排查: (1)運用服務器:排查內(nèi)存,cpu,請求數(shù)等; (2)文件圖片服務器:排查內(nèi)存,cpu,請求數(shù)等; (3)計時器服務器:排查內(nèi)存,cpu,請求數(shù)等; (4)redis服務器:排查內(nèi)存,cpu,連接數(shù)等; (5)db服務器:排查內(nèi)存,cpu,連接數(shù)

    2024年02月07日
    瀏覽(29)
  • Java JVM分析利器JProfiler 結(jié)合IDEA使用詳細教程

    Java JVM分析利器JProfiler 結(jié)合IDEA使用詳細教程

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 對于我們Java程序員而言,肯定需要對項目工程進行JVM監(jiān)控分析,最終選擇jprofiler,它可以遠程鏈接,使用方便,功能也很強大! JProfiler是一個重量級的JVM監(jiān)控工具,提供對JVM精確監(jiān)控,其中堆遍歷、

    2024年02月08日
    瀏覽(24)
  • 【jvm系列-09】垃圾回收底層原理和算法以及JProfiler的基本使用

    【jvm系列-09】垃圾回收底層原理和算法以及JProfiler的基本使用

    JVM系列整體欄目 內(nèi)容 鏈接地址 【一】初識虛擬機與java虛擬機 https://blog.csdn.net/zhenghuishengq/article/details/129544460 【二】jvm的類加載子系統(tǒng)以及jclasslib的基本使用 https://blog.csdn.net/zhenghuishengq/article/details/129610963 【三】運行時私有區(qū)域之虛擬機棧、程序計數(shù)器、本地方法棧 https

    2023年04月22日
    瀏覽(29)
  • Java 性能診斷工具你好

    Java 性能診斷工具, 從java自帶的工具到單機圖形化診斷工具再到分布式診斷工具 Java自帶了許多診斷工具,例如JConsole、JVisualVM、jmap、jstack、jcmd等。這些工具都是非常常用的工具,它們可以幫助開發(fā)人員診斷Java應用程序的性能問題。其中,JConsole和JVisualVM是圖形化工具,可以

    2023年04月08日
    瀏覽(18)
  • Java開發(fā)分析工具 JProfiler的詳細使用方法解析(附 JProfiler for Mac許可證秘鑰)

    Java開發(fā)分析工具 JProfiler的詳細使用方法解析(附 JProfiler for Mac許可證秘鑰)

    JProfiler? ?是一款功能強大的Java代碼分析工具,JProfiler的直觀UI可幫助您解決性能瓶頸,確定內(nèi)存泄漏并了解線程問題且JProfiler? ?Mac破解版配置會話非常簡單,第三方集成使得入門變得輕而易舉,并且以自然的方式呈現(xiàn)數(shù)據(jù)分析。 ? 當無法建立分析會話時,首先要做的是查

    2024年01月23日
    瀏覽(87)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包