1. 程式人生 > >Java -verbose命令

Java -verbose命令

原文地址:http://blog.csdn.net/yxpjx/article/details/6187207

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

1.java -verbose:class

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

 verbose和verbose:class含義相同,輸出虛擬機器裝入的類的資訊,顯示的資訊格式如下: [Loaded java.io.FilePermission$1 from shared objects file] 當虛擬機器報告類找不到或類衝突時可用此引數來診斷來檢視虛擬機器從裝入類的情況。

2.java –verbose:gc

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

01 public class TestGC{
02 
03       public static void main(String[] args){
04 
05 TestGC test = new TestGC();
06 
07 System.gc();
08 
09 }
10 
11 }

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

[Full GC 168K->97K(1984K), 0.0253873 secs]

機器的環境為,Windows 2000 + JDK1.3.1,箭頭前後的資料168K和97K分別表示垃圾收集GC前後所有存活物件使用的記憶體容量,說明有168K-97K=71K的物件容量被回收,括號內的資料1984K為堆記憶體的總容量,收集所需要的時間是0.0253873秒(這個時間在每次執行的時候會有所不同)。

3.java –verbose:jni

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

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