1. 程式人生 > >Java程式記憶體分析:jdk自帶的jmap能為我們帶來什麼

Java程式記憶體分析:jdk自帶的jmap能為我們帶來什麼

jmap

打印出某個java程序(使用pid)記憶體內的,所有物件的情況(如:產生那些物件,及其數量)。

可以輸出所有記憶體中物件的工具,甚至可以將VM 中的heap,以二進位制輸出成文字。使用方法 jmap -histo pid。如果連用SHELL jmap -histo pid>a.log可以將其儲存到文字中去,在一段時間後,使用文字對比工具,可以對比出GC回收了哪些物件。jmap -dump:format=b,file=outfile 3024可以將3024程序的記憶體heap輸出出來到outfile檔案裡,再配合MAT(記憶體分析工具(Memory Analysis Tool

)或與jhat (Java Heap Analysis Tool)一起使用,能夠以影象的形式直觀的展示當前記憶體是否有問題。

64位機上使用需要使用如下方式:

jmap -J-d64 -heap pid

命令格式

       jmap [ option ] pid

       jmap [ option ] executable core

       jmap [ option ] [[email protected]]remote-hostname-or-IP

引數說明

1)、options

executable Java executable from which the core dump was produced.

(可能是產生core dumpjava可執行程式)

core 將被列印資訊的core dump檔案

remote-hostname-or-IP 遠端debug服務的主機名或ip

server-id 唯一id,假如一臺主機上多個遠端debug服務 

2)、基本引數:

-dump:[live,]format=b,file=<filename> 使用hprof二進位制形式,輸出jvmheap內容到檔案=. live子選項是可選的,假如指定live選項,那麼只輸出活的物件到檔案

-finalizerinfo 列印正等候回收的物件的資訊.

-heap 列印heap

的概要資訊,GC使用的演算法,heap的配置及wise heap的使用情況.

-histo[:live] 列印每個class的例項數目,記憶體佔用,類全名資訊. VM的內部類名字開頭會加上字首”*如果live子引數加上後,只統計活的物件數量

-permstat 列印classloadjvm heap長久層的資訊包含每個classloader的名字,活潑性,地址,classloader和載入的class數量另外,內部String的數量和佔用記憶體數也會打印出來

-F 強迫.pid沒有相應的時候使用-dump或者-histo引數在這個模式下,live子引數無效

-h | -help 列印輔助資訊 

-J 傳遞引數給jmap啟動的jvm. 

pid 需要被列印配相資訊的java程序id

首先檢視javaw的程序號,7712

  • jmap -histo pid 展示class的記憶體情況

    展示的資訊為編號,例項數,位元組,類名

  • jmap -heap pid 展示pid的整體堆資訊

    說明如下:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Heap Configuration:#堆記憶體初始化配置 MinHeapFreeRatio = 40  #-XX:MinHeapFreeRatio設定JVM堆最小空閒比率   MaxHeapFreeRatio = 70  #-XX:MaxHeapFreeRatio設定JVM堆最大空閒比率   MaxHeapSize      = 268435456(256.0)#-XX:MaxHeapSize=設定JVM堆的最大大小   NewSize          = 1048576 (1.0MB) #-XX:NewSize=設定JVM堆的‘新生代’的預設大小   MaxNewSize       = 4294901760 (4095.9375MB) #-XX:MaxNewSize=設定JVM堆的‘新生代’的最大大小  OldSize          = 4194304 (4.0MB) #-XX:OldSize=設定JVM堆的‘老生代’的大小   NewRatio         = 

    相關推薦

    Java程式記憶體分析jdkjmap我們帶來什麼

    jmap 打印出某個java程序(使用pid)記憶體內的,所有‘物件’的情況(如:產生那些物件,及其數量)。 可以輸出所有記憶體中物件的工具,甚至可以將VM 中的heap,以二進位制輸出成文字。使用方法 jmap -histo pid。如果連用SHELL jmap -histo pid&g

    Java程式記憶體分析使用mat工具分析記憶體佔用

    MAT 不是一個萬能工具,它並不能處理所有型別的堆儲存檔案。但是比較主流的廠家和格式,例如 Sun, HP, SAP 所採用

    DL之NN(sklearn資料集1797個樣本*64個特徵)利用NN之sklearn、NeuralNetwor.py實現手寫數字圖片識別95%準確率

    先檢視sklearn自帶digits手寫資料集(1797*64)import numpy as np from sklearn.datasets import load_digits from skl

    使用JDK的VisualVM進行Java程式的效能分析

    VisualVM是什麼? VisualVM是JDK自帶的一個用於Java程式效能分析的工具,JDK安裝完畢後就有啦,在JDK安裝目錄的bin資料夾下能找到名稱為jvisualvm.exe。 要使用VisualVM分析您的應用效能,首先得讓Visual

    JDK記憶體及執行緒分析工具小記

    查詢、監控、分析Java應用程式的時候,我們關注的點主要集中在資源利用,比如CPU,記憶體,IO,執行緒等。其中記憶體以及執行緒的分析尤為常見。記憶體,是否有記憶體洩漏,各個區塊記憶體分配是否大小合適。執行緒,數目是否合理,有沒有死鎖,執行狀態如何。 jps -vl jps是JDK提

    如何使用JDK的jvisualvm監控java程式Java HotSpot(TM)】

      這篇文章僅針對HostSpot虛擬機器 第一步,寫一個測試的policy檔案,命名為test.policy,指定可以訪問tools.jar,內容如下: grant codebase "file:${java.home}/../lib/tools.jar" {    pe

    使用JDKjvisualvm監控tomcat和java程式

        # cd $CATALINA_HOME/conf/    # cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.password    # chmod 700 jmxremote.password    (一定

    JDK的運行監控工具JConsole觀察分析Java程序的運行

    alt nbsp 類裝載 什麽 spl for 監控工具 計算機 reat 原文地址:https://blog.csdn.net/libaolin198706231987/article/details/55057149 一、JConsole是什麽 從Java

    C++ 記憶體洩漏檢測1微軟記憶體洩漏檢測方法

    在程式總的包含標頭檔案中新增以下程式碼, #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #else #define DEBUG_CLIENTBLOCK

    JVM快速調優手冊之七Java程式效能分析工具JavaVisualVM(Visual GC)

    VisualVM 是一款免費的\集成了多個JDK 命令列工具的視覺化工具,它能為您提供強大的分析能力,對 Java 應用程式做效能分析和調優。這些功能包括生成和分析海量資料、跟蹤記憶體洩漏、監控垃圾回收器、執行記憶體和 CPU 分析,同時它還支援在 MBeans

    利用JDK工具構建一個簡單的Java SOAP Web Service

    這兩天由於工作的某些原因,需要了解一些關於Web Service的知識,然後在網上看到了這麼一篇簡單的有點略微過時但是對於初次接觸Web Service的同學來說又很有必要了解的文章,於是自己嘗試著將文章翻譯過來。 A. 構造Web服務 1. 構造一個簡單的hello

    jdk的執行緒池框架ThreadPoolExcutor原始碼分析

    一、前言   JUC這部分還有執行緒池這一塊沒有分析,需要抓緊時間分析,下面開始ThreadPoolExecutor,其是執行緒池的基礎,分析完了這個類會簡化之後的分析,執行緒池可以解決兩個不同問題:由於減少了每個任務呼叫的開銷,它們通常可以在執行大量非同步任務

    通過jdkxjc將xsd 快速生成java

    首先確保計算機已經安裝了jdk,且在環境變數中配置了jdk路徑。 我的計算機安裝的是1.7,就以這個為例吧! 1.進入dos視窗 1.指定某一個xsd檔案生成指定名稱的java類 進入xsd檔案所在目錄,我的在D盤,所以我 D:進入D盤 然後開始執行下面語法(xxxxx.

    JVM系列-04-JDK的管理分析工具

    宣告 本篇文章是本人閱讀《深入理解JVM》和《java虛擬機器規範》時的筆記。 記錄的都是一些概念性的東西。 JVM是HotSpot,jdk1.7。 大神繞路,不喜勿噴。 1 概覽 對於java程式設計師來說,java、javac、ja

    jstat命令分析java程式記憶體回收情況

    命令格式: jstat -gc <pid> <period> <times> 示例: 結果中每個專案的含義可以參考官方對jstat的文件,簡單翻譯如下: - S0C: Young Generation第一個survivor spac

    JDKXML和java物件相互轉換

    下面使用的是JDK自帶的類,沒有引用任何第三方jar包。Unmarshaller 類使客戶端應用程式能夠將 XML 資料轉換為 Java 內容物件樹。備註:marshal(序列化、排列、整理)Marshaller 類使客戶端應用程式能夠將 Java 內容樹轉換回 XML 資料

    死鎖排查的小竅門 --使用jdk管理工具jstack

    pre ble new deadlock 一段 指令 tro bject print 本文版權歸 遠方的風lyh和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。 開發時間久了,難免會寫出一些一些死鎖的代碼,自己明明調用該方法可該方法就是不執行、不進該

    JVM分析工具介紹——jmap和jhat

    inf info weibo 介紹 oci mar style lan user 0L蛻投M口l形繃9http://huiyi.docin.com/sina_5847440681 RH姥胤1操士剮訊39鎂http://www.docin.com/sina_62699771

    JVM分析工具介紹——jstat

    mfp ldd 性能分析工具 blank pxn qtp targe 自帶 mcs 炭撐pcdw1律v煌映40嘔http://tushu.docin.com/sina_6345212704 倩角72g傲28蛻iy墾84http://tushu.docin.com/sina_

    Java基礎總結01JDK與JRE概述

    環境 開發工具 只需要 不用 基礎 好的 概述 spa runtime 1)JRE(Java Runtime Environment,Java運行時環境)   包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等,如果想要運行