1. 程式人生 > >JVM -verbose引數詳解(轉)

JVM -verbose引數詳解(轉)

java -verbose[:class|gc|jni] 在輸出裝置上顯示虛擬機器執行資訊。

1.java -verbose:class

在程式執行的時候有多少類被載入!你可以用verbose:class來監視,在命令列輸入java -verbose:class XXX  (XXX為程式名)你會在控制檯看到載入的類的情況。

verbose和verbose:class含義相同,輸出虛擬機器裝入的類的資訊,顯示的資訊格式如下: 

[Opened D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.Object from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.io.Serializable from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.Comparable from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.CharSequence from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.String from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.reflect.GenericDeclaration from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.reflect.Type from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.reflect.AnnotatedElement from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.Class from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.Cloneable from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.ClassLoader from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.System from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

[Loaded java.lang.Throwable from D:\Java\jdk1.6.0_25\jre\lib\rt.jar]

當虛擬機器報告類找不到或類衝突時可用此引數來診斷來檢視虛擬機器從裝入類的情況。

2.java –verbose:gc

在虛擬機發生記憶體回收時在輸出裝置顯示資訊,格式如下: [Full GC 256K->160K(124096K), 0.0042708 secs] 該引數用來監視虛擬機器記憶體回收的情況。

public class JvmVerbose {

/**

* JVM -verbose[:class|gc|jni] 引數測試

*/

public static void main(String[] args) {

JvmVerbose jvmVerbose = new JvmVerbose();

System.gc();

}

}

在這個例子中,一個新的物件被建立,由於它沒有使用,所以該物件迅速地變為可達,程式編譯後,執行命令: java -verbose:gc JvmVerbose 後結果為:

[GC 647K->256K(124096K), 0.0274253 secs]

[Full GC 256K->160K(124096K), 0.0042708 secs]

箭頭前後的資料256K和160K分別表示垃圾收集GC前後所有存活物件使用的記憶體容量,說明有256K-160K=96K的物件容量被回收,括號內的資料124096K為堆記憶體的總容量,收集所需要的時間是0.0042708秒(這個時間在每次執行的時候會有所不同)。

3.java –verbose:jni

-verbose:jni輸出native方法呼叫的相關情況,一般用於診斷jni呼叫錯誤資訊。

在虛擬機器呼叫native方法時輸出裝置顯示資訊,格式如下: [Dynamic-linking native methodjava.lang.Object.registerNatives ... JNI] 該引數用來監視虛擬機器呼叫本地方法的情況,在發生jni錯誤時可為診斷提供便利。

----------------------------------------------

我來小試身手

public classTest{
	publicstaticvoidmain(String args[]){
		Test test = new Test();
		System.gc();
	}
}

配置引數:

執行Test.class載入了以下這麼多類

[Opened C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.Object from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.io.Serializable from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.Comparable from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.CharSequence from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.String from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.reflect.GenericDeclaration from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.reflect.Type from C:\Java\jdk7\jre\lib\rt.jar]

。。。。。只取了一部分

[Full GC 812K->442K(15872K), 0.0031244 secs] 

[Loaded sun.misc.Cleaner from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.Shutdown from C:\Java\jdk7\jre\lib\rt.jar]

[Loaded java.lang.Shutdown$Lock from C:\Java\jdk7\jre\lib\rt.jar]

相關推薦

JVM -verbose引數()

java -verbose[:class|gc|jni] 在輸出裝置上顯示虛擬機器執行資訊。 1.java -verbose:class 在程式執行的時候有多少類被載入!你可以用verbose:class來監視,在命令列輸入java -verbose:class XXX

JVM配置引數

一、堆引數設定 -XX:+PrintGC 使用這個引數,虛擬機器啟動後,只要遇到GC就會列印日誌 -XX:+UseSerialGC 配置序列回收器 -XX:+PrintGCDetails 可以檢視詳細資訊,包括各個區的情況 -Xms:設定Java程式啟動

JVM監控命令()

JVM監控命令基本就是 jps、jstack、jmap、jhat、jstat 幾個命令的使用就可以了   JDK本身提供了很多方便的JVM效能調優監控工具,除了整合式的VisualVM和jConsole外,還有jps、jstack、jmap、jhat、jstat

datatables 引數()

標籤: //@translator codepiano //@blog codepiano //@email [email protected] //嘗試著翻譯了一下,難免有錯誤的地方,歡迎發郵件告知,多謝。 /*------------------------

硬碟SMART檢測引數[]

一、SMART概述        要說Linux使用者最不願意看到的事情,莫過於在毫無警告的情況下發現硬碟崩潰了。諸如RAID的備份和儲存技術可以在任何時候幫使用者恢復資料,但為預防硬體崩潰造成資料丟失所花費的代價卻是相當可觀的,特別是在使用者從來沒有提前考慮過在這些情況下的應對措施時。 硬碟的故障一般

JVM記憶體引數以及配置調優

基本概念: PermGen space:全稱是Permanent Generation space。就是說是永久儲存的區域,用於存放Class和Meta資訊,Class在被Load的時候被放入該區域 Heap space:存放Instance。GC(Garbage Collection)應該不會對PermGe

JVM 啟動引數

JAVA虛擬機器(JVM)通過作業系統命令JAVA_HOME\bin\java –option 來啟動,-option為虛擬機器引數,JAVA_HOME為JDK安裝路徑,通過這些引數可對虛擬機器的執行狀態進行調整,掌握引數的含義可對虛擬機器的執行模式有更深入的理解。虛擬機器

BasicStroke引數[]

1. 基本概念 在JAVA 2D開發中,BasicStroke用於定義線條的特徵,我們可以呼叫Graphics2D類中的setStroke方法來將新建立的BasicStroke物件設定進去。BasicStroke的構造方法如下所示: 對圖形的一些專業名詞不熟悉的程式設

mencoder和ffmpeg引數2 (

有很多軟體能夠擷取影片影象、合併影象,但如果影片太多,比如視訊網站為使用者上傳的影象生成預覽圖之類的,人工在gui方式下操作就不可取了,我們需要在命令列方式下來擷取、合併。 首先,擷取影片影象使用最多的就是mplayer或者ffmpeg,我用mplayer比較熟,本文就以此為例了,ffmpe

JVM堆記憶體管理與自定義分配引數

堆記憶體模型:   在Java中,堆被劃分成兩個不同的區域:新生代(Young),老年代(Old)。而Permanent屬於永久代(方法區),不屬於堆記憶體。新生代又被分為了三個區域:Eden,from  survivor,to survivor。這樣劃分的目的

monkey基本命令引數示例()

Monkey基本命令引數 引數名 基本功能 舉例 -p 引數-p用於約束限制,用此引數指定一個或多個包(Package,即App)。指定 包之後,Monkey將只允許系統啟動指定的APP。如果不指定包,Monkey將允許系統啟動裝置中的所有AP

FFMPEG進階系列03-ffmpeg碼專題(中)x264引數

概述 x264編碼引數簡介 版本 x264.exe --fullhelp 列印 x264 core:152 r2851 ba24899 Syntax: x264 [options] -o outfile infile Presets(預設) 用於簡化命令列而

JVM引數垃圾回收調優

一、常用JVM配置引數1.1基本引數 -client,-server    這兩個引數用於設定虛擬機器使用何種執行模式,client模式啟動比較快,但執行時效能  和記憶體   管理效率不如server模式,通常用於客戶端應用程式。相反,server

JVM效能調優的6大步驟,及關鍵調優引數

JVM效能調優的6大步驟,及關鍵調優引數詳解 JVM效能調優方法和步驟 1.監控GC的狀態 2.生成堆的dump檔案 3.分析dump檔案 4.分析結果,判斷是否需要優化 5.調整GC型別和記憶體分配 6.不斷分析

JVM GC演算法 CMS ()

前言CMS,全稱Concurrent Low Pause Collector,是jdk1.4後期版本開始引入的新gc演算法,在jdk5和jdk6中得到了進一步改進,它的主要適合場景是對響應時間的重要性需求 大於對吞吐量的要求,能夠承受垃圾回收執行緒和應用執行緒共享處理器資源,並且應用中存在比較多的長生命週期的

JVM(5) JVM 引數

晚上忽然發現自己的MAC從執行程式到看到Spring boot日誌時間超過20秒。新建個空的boot空工程也需要10秒才會看到boot的啟動日誌。 最後設定了gc日誌看了下有無異常情況。 從jv

SWFTOOLS PDF2SWF 引數

SWFTools提供了一系列將各種檔案轉成swf的工具: font2swf.exe gif2swf.exe jpeg2swf.exe pdf2swf.exe png2swf.exe wav2swf.exe 具體的功能就顧名思義了。 其中把pdf轉成swf的工具就是pdf2sw

JVM 引數

-XX 引數被稱為不穩定引數,之所以這麼叫是因為此類引數的設定很容易引起JVM 效能上的差異,使JVM 存在極大的不穩定性。當然這是在非合理設定的前提下,如果此類引數設定合理講大大提高JVM 的效能及穩定性。        可以說“不穩定引數”是一柄雙刃劍,用的好攻無不克,用

Rsyslog配置文件()

安裝 權限 lines true time cor optional tex 以及 最近在搭建日誌審計服務器,使用了rsyslog,發現這篇文章很有用,收藏一下。 原文鏈接:http://my.oschina.net/0757/blog/198329 具體內容: 非常詳

Buffer類的()

iteye 原始數據類型 pub bst exception 如何 數字 硬件 final Buffer 類是 java.nio 的構造基礎。一個 Buffer 對象是固定數量的數據的容器,其作用是一個存儲器,或者分段運輸區,在這裏,數據可被存儲並在之後用於檢索。緩沖區可以