快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
色,没有争用的锁显示为鲜绿色。每个竖条的高度(相对于其 他竖条)显示锁堵塞的程度。因此,颜色和高度共同显示哪些锁的争用最激烈。

一个锁可以拥有很高的竖条但仍然处于绿色。这表示尽管该锁拥有大量受到堵塞的请求,但总的来说 它拥有很多的成功获取,因此总堵塞请求的百分比仍然很低。但是,这仍然会影响性能。在图 9 中的锁 定柱形图中,您将看到两个橙色的竖条:

图 9. 锁定柱形图

在图 9 中,有两个锁值得深入研究,因为两个竖条都表明激烈的争用。它们是最高的两个竖条,这说 明它们拥有最多的受阻请求;它们正在变为红色,这说明请求那些锁的受阻请求的总百分比很高。

锁性能改进策略

带有非常慢的计数的锁都可能影响性能。如何减小这些锁的性能影响?第 一步是检查哪些代码正在使用问题锁。Health Center 显示锁的类别,在某些情况下,这足以识别锁,但 在另一些情况下则无法识别。例如,如果锁对象的类别是 Object,搜索代码以引用它可能不太容易。图 10 展示 Health Center 对锁行为的分析,涉及 DataStore 类别和 Object 类别的各种锁。如果 Health Center 将锁定标识为一个性能问题,但从 Health Center 分析中又不能确定具体是由哪个锁引起问题, 那么您可以重构代码以在锁对象中使用更明确的类名称,或者使用一系列 javacore 来捕获调用最常用锁 的调用堆栈。

图 10. 锁定表

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

时间:2011-11-02 IBM Toby Corbin

确定问题锁后,您应该重写应用程序来减少该锁的争用。可以用两种方法最小化争用:减少占用锁的 时间,这将降低冲突发生的几率;提高使用的锁对象的数量,这样每个锁对象将用于更少的上下文中。

检查代码执行

一个方法配置文件将告诉您应用程序正在运行的是哪些代码。(它并不告诉您应用程序何时等待锁而 不是运行您的代码,它也不会告诉您 JVM 何时收集垃圾而不是运行您的代码)。如果有一个或两个方法 消耗的 CPU 时间不正常,那么优化这些方法可以极大地改进性能。图 11 显示 Health Center 的 Profiling ****图,它包含一个按照活跃程度(热度)排序的最活跃方法表和一组建议。

图 11. Profiling ****图

如果没有一个方法的颜色为橙色或红色,则应用程序的执行在几个方法之间相对均衡。优化最热的方 法仍然是值得的,因为它们产生的性能也许还不够好。例如,某个方法可能过度使用 I/O。在本例中,某 个方法占用的 CPU 资源明显比其他方法多,因此它的颜色为红色。通过图 11 中左边的 Self 列的值可 以看出,在 JVM 检查的应用程序的工作时间中,42.1% 的时间用于执行 DataStore.storeData(I) 方法 。右边的 Tree 列显示应用程序在 DataStore.storeData(I) 方法及其子方法上花费的时间。在一个简单 的单线程应用程序中,100% 的 Tree 时间将用于 main() 方法。

代码优化策略

性能优化的目标是减少应用程序的工作。由于大部分工作发生在方法配置文件中排在前面的方法中, 因此这些方法应该重点考虑。您可以放心地忽略方法配置文件中排在底部的方法。

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

时间:2011-11-02 IBM Toby Corbin

采样配置程序和跟踪配置程序

Health Center 通过每 2 毫秒对调用堆栈进行一次采样来生成方法配置文件。有些配置程序称为跟踪 配置程序,它们跟踪方法的进入和离开。这提供关于所有被调用方法及其调用时间的详细信息,但这将为 被配置的应用程序带来巨大的开销。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号