`

java -verbose

 
阅读更多
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错误时可为诊断提供便利。
分享到:
评论

相关推荐

    HelloWorld的javap -verbose HelloWorld 字节码初探

    标题中的“HelloWorld的javap -verbose HelloWorld”指的是在Java编程环境中,通过`javap`这个命令行工具来反汇编一个简单的“HelloWorld”程序,以深入理解字节码的工作原理。`javap`是Java Platform Debugger ...

    精简JRE - verbose命令

    当我们需要对Java程序的运行过程进行详细分析,特别是诊断性能问题或内存泄漏时,`verbose`命令是一个非常有用的工具。本篇内容将深入探讨如何精简JRE并使用verbose命令来获取运行时的详细信息。 首先,精简JRE是...

    JAVA-OPTS参数设置.docx

    8. -verbose:gc:实时垃圾收集信息。 9. -Xloggc:gc.log:指定垃圾收集日志文件。 10. -XX:+UseParNewGC:缩短 minor 收集的时间。 11. -XX:+UseConcMarkSweepGC:缩短 major 收集的时间。 PermGen space 是 ...

    garbageCollectionAnalyse:分析Java垃圾收集日志

    java -verbose:gc -Xloggc:/var/js/java.log -XX:+ PrintGCDetails -XX:+ PrintTenuringDistribution -XX:+ PrintGCTimestamps ... java -verbose:gc -Xloggc:/var/js/java.log -XX:+ PrintGCDet

    Java学习的几点意见

    例如,使用`java -verbose`或`javac -verbose`命令可以显示详细的编译和运行日志,这对于定位问题非常有帮助。 #### 6. 重视实践与源代码阅读 理论知识是基础,但实践是检验真理的唯一标准。在学习Java的过程中,...

    java杂谈-一个计算机专业学生几年的编程经验汇总谈实用.pdf

    作者建议通过在命令行中使用`java -verbose *.class`参数来观察类的加载过程。这样可以清晰地看到类文件被加载的顺序,只有当类的实例真正被创建时,对应的类文件才会被加载。这有助于理解Java如何在运行时管理类的...

    codegen:Java代码生成器

    编码原从CRUD代码生成,基于Spring,带有Restful和Spring-Data。使用生成器的步骤: 该项目基于maven,codegen模块包含Velocity模板,这些模板生成Spring代码1-访问codegen项目文件夹并执行命令: mvn install 2-...

    java学习经验谈.pdf

    当你在命令行窗口运行Java程序时,通过添加`-verbose`参数,如`java -verbose *.class`,可以观察到类加载的过程。这样你会清晰地看到哪些类文件被加载,以及加载的顺序。Java遵循“按需加载”的原则,只有当类的...

    java杂谈-一个计算机专业学生几年的编程经验汇总谈.pdf

    当你在命令行中运行Java程序时,可以使用`java -verbose *.class`参数,这将显示程序加载的所有类文件,让你能够观察到类加载的顺序。只有当类的实例真正被创建时,对应的类文件才会被加载,这也是Java实现“按需...

    程序员学习Java的一剂良药.

    - **使用`verbose`选项**:利用JDK提供的`-verbose`选项(例如`java -verbose`或`javac -verbose`),观察程序运行时JVM加载类的信息,加深对程序运行机制的理解。 - **构建个人代码库**:将自己编写的破坏性例程...

    joor-java-8-0.9.11.jar

    The JDK's reflection APIs are hard and verbose to use. Other languages have much simpler constructs to access type meta information at runtime. Let us make Java reflection better.

    Android 使用jarsigner给apk签名的方法详细介绍

    `jarsigner`是Java SDK中的一个工具,用于对Java或Android应用进行签名,包括APK文件。签名的过程是为了验证应用的来源和完整性,同时也是发布应用到Google Play或其他应用商店的必要步骤。 首先,我们需要理解`...

    java命令参数详解

    Java命令参数详解是Java开发中不可或缺的一部分,它们允许开发者对JVM(Java虚拟机)的行为进行微调,以优化程序的性能、控制内存使用、调试和监控等。本文将深入探讨一些关键的Java命令行参数。 1. **-version**: ...

    java 反序列化利用工具marshalsec-0.0.3-SNAPSHOT-all

    marshalsec命令格式如下: ...-v:verbose mode, 展示生成的payloads gadget_type:指定使用的payload arguments - payload运行时使用的参数 marshalsec.<marshaller>:指定exploits,根目录下的java文件名

    sh_webservice_client.zip

    wsimport -keep -d E:\javaimport -s C:\Users\Administrator\eclipse-workspace\sh_webservice_client\src\main\java -verbose -Xauthfile E:\11.txt -extension E:\SI_03DL4_ERP2HHGSBWX_CREAT_DG.wsdl

    Java完全编程经验

    例如,运行`java -verbose:gc -classpath yourpath *.class`。 - 这样会显示JVM加载的所有类文件,包括JDK自带的类以及用户自定义的类。 - 当你声明一个类但未实例化时,该类不会被加载。只有当创建该类的对象时,...

Global site tag (gtag.js) - Google Analytics