快速业务通道

IBM的Java诊断,第5部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
法。

一个方法出现在方法配置文件顶部的原因有两个:要么该方法被频繁调用,要么它在被调用时执行的 工作太多。执行带有循环(特别是嵌套循环)的方法可能需要耗费很多时间。包含多行代码的方法的执行 时间通常也比代码行较少的方法的执行时间更长。如果一个只有少量代码并且不包含循环的方法位于配置 文件的顶部,那么它可能正被频繁调用。

有两种方法可以优化一个应用程序:一是在耗费时间的方法中执行更少的工作,二是减少频繁调用的 方法的调用次数。要减少方法中执行的工作,最有效的方法是尽量将代码移出循环。要减少一个方法的调 用次数,方法是找出哪些代码正在调用该方法,然后取消这些调用。通常,至少是在优化的初始阶段,对 配置文件顶部的方法的调用中,相当大的一部分调用都是不必要的,可以安全删除。在 Health Center 的方法配置文件中选择一个方法,将在屏幕底部显示它的调用路径。图 12 显示,对 DataStore.storeData 方法的 90.3% 的调用来自 StoreData.run 方法。

图 12. 一个调用路径树

关注不同的时间间隔

有时,一个应用程序的行为在某个时段内会剧烈变化:垃圾行为变得密集,或者对某个锁的争用十分 激烈,或者某个方法迅速蹿升至方法配置文件的顶部。 Health Center 支持对某个选定时段进行分析。 用鼠标在柱形图上拖动一个方框将缩小显示的时段,这种剪裁将影响所有透视图。建议将被更新,以只基 于选定的时段。方法配置表也会被更新,以便样例计数和百分比只针对选定的时段。这允许您,例如,只 看到在 GC 出现问题时执行的方法;或者排除在应用程序启动期间分析的数据。

示例 2:修复配置问题

在现代环境中,创建和部署一个 Java 应用程序可能需要几个不同的个人,也可能需要很多大型团队 ,尤其是当应用程序在一个应用服务器或框架中运行时更是如此。启动参数可以在几个不同的位置设置, 要了解哪个 JVM 使用什么配置运行何种应用程序将非常困难。尽管在正常情况下这完全可以接受,但如 果出现问题,更好地理解 Java 应用程序的配置方式可能非常关键。不当的配置可能会导致性能问题,这 些问题并不总是能通过前面介绍过的方法识别,它们会导致异常的应用程序行为并危害服务能力。

Health Center 包含一个名为 Environment 的透视图,它显示受监控的应用程序的类路径、系统属性 和环境变量。它还分析 Java 配置并提供关于潜在问题的建议。图 13 显示 Environment 透视图:

图 13. Environment 透视图

IBM的Java诊断,第5部分(9)

时间:2011-11-02 IBM Toby Corbin

我运行的是哪个 JVM?

在 Environment 透视图中显示的最简单的信息之一是正在被监控的 JVM 的地址。令人惊讶的是,这 个简单信息通常足以用于解决问题。预期的类不可用吗?对 JAVA_HOME 中的文件的修改(如日志配置、 安全配置或库更改)没有起作用吗?诊断这些问题时,首要任务是检查正在运行的 JVM 是不是您所预期 的。大多数现代系统可以安装许多 JVM,大型应用程序甚至可以在不同的位置包含几个不同的 JVM。

我正在使用哪些启动参数运行?

Java 技术支持的命令行选项范围非常广泛。某些选项适用特定环境,但不适用其他环境。在一个现代 应用程序部署中,可以在几个嵌套启动脚本中设置选项,应用程序实际运行哪些选项并不总是很清楚。 Health Center 提供一个视图以显示最终的 Java 命令行,这允许您确定异常的应用程序配置。例如,最 大堆大小可能被限制为较小的值。对于较小的实用应用程序而言,这没有问题;但对于需要在内存中操作 大型数据集的应用程序而言,这种限制可能会导致崩溃。如果负责这个崩溃的应用程序的团队不知道这个 最大堆大小设置,他们很难理解为何内存总是不够用。图 14 显示 Health Center

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号