Java命令學習系列(零)——常見命令及Java Dump介紹

weixin_33912246發表於2018-11-10

一、常用命令:

在JDK的bin目彔下,包含了java命令及其他實用工具。

jps:檢視本機的Java中程式資訊。

jstack:列印執行緒的棧資訊,製作執行緒Dump。

jmap:列印記憶體對映,製作堆Dump。

jstat:效能監控工具。

jhat:記憶體分析工具。

jconsole:簡易的視覺化控制檯。

jvisualvm:功能強大的控制檯。

二、認識Java Dump:

什麼是Java Dump?

Java虛擬機器的執行時快照。將Java虛擬機器執行時的狀態和資訊儲存到檔案。

執行緒Dump,包含所有執行緒的執行狀態。純文字格式。

堆Dump,包含執行緒Dump,幵包含所有堆物件的狀態。二進位制格式。

Java Dump有什麼用?

補足傳統Bug分析手段的不足: 可在任何Java環境使用;資訊量充足。 針對非功能正確性的Bug,主要為:多執行緒幵發、記憶體洩漏。

製作Java Dump

使用Java虛擬機器制作Dump

指示虛擬機器在發生記憶體不足錯誤時,自動生成堆Dump

-XX:+HeapDumpOnOutOfMemoryError

使用圖形化工具製作Dump

使用JDK(1.6)自帶的工具:Java VisualVM。

使用命令列製作Dump

jstack:列印執行緒的棧資訊,製作執行緒Dump。

jmap:列印記憶體對映,製作堆Dump。

步驟:

  1. 檢查虛擬機器版本(java -version)
  2. 找出目標Java應用的程式ID(jps)
  3. 使用jstack命令製作執行緒Dump • Linux環境下使用kill命令製作執行緒Dump
  4. 使用jmap命令製作堆Dump

from: https://www.hollischuang.com/archives/308

相關文章