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
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 dump的java可執行程式)
core 將被列印資訊的core dump檔案
remote-hostname-or-IP 遠端debug服務的主機名或ip
server-id 唯一id,假如一臺主機上多個遠端debug服務
2)、基本引數:
-dump:[live,]format=b,file=<filename> 使用hprof二進位制形式,輸出jvm的heap內容到檔案=. live子選項是可選的,假如指定live選項,那麼只輸出活的物件到檔案.
-finalizerinfo 列印正等候回收的物件的資訊.
-heap 列印heap
-histo[:live] 列印每個class的例項數目,記憶體佔用,類全名資訊. VM的內部類名字開頭會加上字首”*”. 如果live子引數加上後,只統計活的物件數量.
-permstat 列印classload和jvm 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程式記憶體分析:jdk自帶的jmap能為我們帶來什麼
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
使用JDK自帶jvisualvm監控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,其是執行緒池的基礎,分析完了這個類會簡化之後的分析,執行緒池可以解決兩個不同問題:由於減少了每個任務呼叫的開銷,它們通常可以在執行大量非同步任務
通過jdk自帶xjc將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
JDK自帶XML和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基礎總結01:JDK與JRE概述
環境 開發工具 只需要 不用 基礎 好的 概述 spa runtime 1)JRE(Java Runtime Environment,Java運行時環境) 包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等,如果想要運行