通过JVM查看关于Apache Geronimo的统计信息 - 编程入门网
通过JVM查看关于Apache Geronimo的统计信息时间:2011-08-27 IBM Michael Galpin简介:Apache Geronimo 应用服务器不仅是开放源码的,而且性能很高。所以 它是运行高性能应用程序的自然选择。但是,只是将应用程序运行在 Geronimo 中还不能保证它满足您的性能要求。有时候,可能需要分析和优化应用程序的效 率。有许多工具可用于该任务,但您可以通过分析 Java™ 虚拟机 (JVM) 统计信息基本完成该任务。本文将帮您体验如何从 JVM 获得统计信息,从而对应 用程序进行概要分析和优化,以满足性能需要。 JVM 统计信息 JVM 提供许多统计信息。这些统计信息涉及诸如即时 (JIT) 编译、类加载、 内存分配以及最有趣的垃圾收集之类基本的 JVM 特性。 即时编译 JVM 可将字节代码即时编译为机器代码。该动作类似于像您用于脚本语言的解 释器(如 Perl)所执行的动作。但是它更先进,提供许多优化措施,使得已解释 的字节代码几乎与预编译的代码运行得一样快(有时更快)。显然,执行 JIT 编 译需要开销。度量应用程序需要多大开销的两个有用的统计信息是 JIT 编译次数 和执行这些编译花费的时间总量。 类加载 JVM 负责从应用程序的类使用的库向应用程序和类中加载类。因此,这些类可 能是从已部署在 Geronimo 中的 WAR 或 EAR 中加载的类,也可能是包含在 WAR 或 EAR 中的 JAR 文件,或者是由 Geronimo 容器加载的 JAR 中的类。如果类不 用于延长的时间,则 JVM 还可以选择卸载这些类。这将导致几项重要的统计信息 :加载的类的数量、卸载的类的数量、加载和卸载类花费的时间。 内存(堆)分配 在 Java 技术中没有 malloc() 函数,这是因为 JVM 可自动为对象分配内存 。对象从堆中分配;因此,使用的和空闲的堆内存数量是两个非常重要的统计信 息。监视堆分配是检测可怕的内存泄漏最简单的方法之一。 垃圾收集 这可能是 JVM 最有趣的统计信息。正像 JVM 为对象分配内存一样,它还回收 不再使用的对象上的内存。关于垃圾收集如何工作,包括您可以指示 JVM 用于其 垃圾收集器的不同算法,有很多有趣的读物。 还有许多关于垃圾收集器本身的有趣的统计信息。首先是调用垃圾收集器的频 率和垃圾收集过程中花费的时间。垃圾收集的开销很大,因为本质上它会中止应 用程序的执行以便可以检验对象。显然,大量的垃圾收集可以真正减慢应用程序 的运行速度。 其他有趣的统计信息与对象分代有关。垃圾收集器按代对对象进行分类,每代 都指示对象已经经历了一定次数的垃圾收集。(经历很多次垃圾收集的对象比未 经历或者经历了很少次数垃圾收集的对象被垃圾收集的可能性更小。)这样的对 象分类允许垃圾收集器检验更少的对象,使每次垃圾收集速度更快。因此,每代 中对象的数量可能相当有趣,提供更好的方法来查找内存泄漏和很好的方法来考 察潜在优化(如对象缓存和对象池)的影响。 访问 JVM 统计信息 有几个可用的 JVM 实现,但最常见的是 Sun 的 HotSpot JVM。从 Java 2 Platform, Standard Edition (J2SE) 1.4.2 开始,HotSpot 进行了全面配备, 提供许多上面描述的有用的统计信息。有好几个方法用于获得和分析这一数据。 获得 JVM 生成的统计信息之后,您可以访问 Geronimo 的 JVM 并分析您的应用 程序。 通过JVM查看关于Apache Geronimo的统计信息(2)时间:2011-08-27 IBM Michael Galpin访问方法 获得一些 JVM 统计信息的最简单的方法是通过命令行。HotSpot 识别许多命 令行选项,其中几个选项允许您定制堆大小和垃圾收集选项。也可以使用 - verbose:gc 选项。这可使 JVM 打印出以下形式的行:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |