IBM 的 Java 诊断,第 5 部分: 使用 Health Center 优化应用程序
2010-04-01 00:00:00 来源:WEB开发网一旦代理启动,您就可以使用 Health Center 客户端监控您的应用程序并解决各种性能和配置问题。
示例 1:修复一个性能问题
性能优化必须以具体证据为依据。通过检查应用程序代码来识别潜在的性能改进并直接进行修复固然很容易也很诱人,但是,不成熟的优化可能会降低生产率,甚至很危险。与更慢但更自然的代码相比,优化后的代码通常更难以维护。而且,进行这些优化也会耗费大量时间。如果性能的确得到改进,那么优化成本和高度优化的代码所需的额外维护工作仍然是值得的;然而,许多优化并没有取得任何性能改进效果。优化必须瞄准那些能够产生显著效果的位置。识别优化会在哪些位置产生显著效果的过程也是发现瓶颈的过程。
分析性能问题
本质上,所有性能问题的根源都是因为资源有限。影响性能的几种基本计算资源是:CPU、内存、I/O 和锁。一个 CPU 关键型应用程序不能得到足够处理器时间来完成既定工作。一个内存关键型应用程序得不到足够的内存。一个 I/O 关键型应用程序的 I/O 速度无法被系统处理。在一个锁关键型应用程序中,多个线程在相同的锁上争用。线程之间的同步导致了锁争用。随着这些系统变得越来越并行化,同步成为一个影响它们的伸缩性的限制因素。
通过识别瓶颈,您可以识别哪个资源是有限的。Health Center 有几个用于检查和诊断低劣的应用程序性能的工具。性能分析过程是这样的:发现瓶颈、修复瓶颈问题,识别下一个瓶颈、修复瓶颈问题,循环往复,直至获得满意的性能。Health Center 自动化用于识别有限资源的多种流程。目前,Health Center 不能分析 I/O 使用情况,但它能为 CPU 使用、内存使用和锁使用提供形象化显示和建议。
Health Center 的 Status 透视图显示一个带有状态指示器的仪表板,每一个潜在的受限资源都有一个状态指示器。红色和橙色状态表示应用程序性能可以提高的区域。图 5 显示打开的 Status 透视图:
更多精彩
赞助商链接