分享

java -verbose命令

 碧海山城 2010-09-17

java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。

1.java -verbose:class,该参数在查一些诡异的jar包冲突的时候极为有用

在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用 verbose:class来监视,在命令行输入java -verbose:class XXX  (XXX为程序名)你会在控制台看到加载的类的情况。

 verbose和verbose:class含义相同,输出虚拟机装入的类的信息,显示的信息格式如下: [Loaded java.io.FilePermission$1 from shared objects file] 当虚拟机报告类找不到或类冲突时可用此参数来诊断来查看虚拟机从装入类的情况。
[Loaded org.apache.catalina.core.ApplicationResponse from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.catalina.core.ApplicationHttpRequest from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.catalina.core.ApplicationRequest from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.catalina.connector.ResponseFacade from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.catalina.core.ApplicationDispatcher$State from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.catalina.CometFilterChain from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.catalina.core.ApplicationFilterChain from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.coyote.http11.Constants from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]
[Loaded org.apache.tomcat.util.net.AprEndpoint$Handler$SocketState from file:/home/admin/login/.default/tmp/deploy/tmp13385jbossweb.jar]

2.java –verbose:gc

在虚拟机发生内存回收时在输出设备显示信息,格式如下: [Full GC 268K->168K(1984K), 0.0187390 secs] 该参数用来监视虚拟机内存回收的情况。

 public class TestGC{ 

      public static void main(String[] args) {  

TestGC test = new TestGC();  

System.gc(); 

}

}

在这个例子中,一个新的对象被创建,由于它没有使用,所以该对象迅速地变为可达,程序编译后,执行命令: 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错误时可为诊断提供便利。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多