通过 JVM 查看关于 Apache Geronimo 的统计信息
2010-04-23 00:00:00 来源:WEB开发网JVM 统计信息
JVM 提供许多统计信息。这些统计信息涉及诸如即时 (JIT) 编译、类加载、内存分配以及最有趣的垃圾收集之类基本的 JVM 特性。
即时编译
JVM 可将字节代码即时编译为机器代码。该动作类似于像您用于脚本语言的解释器(如 Perl)所执行的动作。但是它更先进,提供许多优化措施,使得已解释的字节代码几乎与预编译的代码运行得一样快(有时更快)。显然,执行 JIT 编译需要开销。度量应用程序需要多大开销的两个有用的统计信息是 JIT 编译次数和执行这些编译花费的时间总量。
类加载
JVM 负责从应用程序的类使用的库向应用程序和类中加载类。因此,这些类可能是从已部署在 Geronimo 中的 WAR 或 EAR 中加载的类,也可能是包含在 WAR 或 EAR 中的 JAR 文件,或者是由 Geronimo 容器加载的 JAR 中的类。如果类不用于延长的时间,则 JVM 还可以选择卸载这些类。这将导致几项重要的统计信息:加载的类的数量、卸载的类的数量、加载和卸载类花费的时间。
内存(堆)分配
在 Java 技术中没有 malloc() 函数,这是因为 JVM 可自动为对象分配内存。对象从堆中分配;因此,使用的和空闲的堆内存数量是两个非常重要的统计信息。监视堆分配是检测可怕的内存泄漏最简单的方法之一。
垃圾收集
这可能是 JVM 最有趣的统计信息。正像 JVM 为对象分配内存一样,它还回收不再使用的对象上的内存。关于垃圾收集如何工作,包括您可以指示 JVM 用于其垃圾收集器的不同算法,有很多有趣的读物。
还有许多关于垃圾收集器本身的有趣的统计信息。首先是调用垃圾收集器的频率和垃圾收集过程中花费的时间。垃圾收集的开销很大,因为本质上它会中止应用程序的执行以便可以检验对象。显然,大量的垃圾收集可以真正减慢应用程序的运行速度。
赞助商链接