1 、 说明 改善 Java 服务器的性能需要模拟负载下的服务器。创建一个模拟环境、搜集数据并且分析结果可能是对许多开发人员的挑战。这里介绍了使用 JProfiler 跟踪分析 Java 服务器的性能。 简单的性能问题很容易分离并解决,然而,大的性能问题,如内存溢出或者系统的罢工,通常在系统处于高负载情况下发生,就不能这么简单的处理了。这些问题需要一个独立的测试环境、一个模拟的负载,并且需要仔细地分析和跟踪。 2 、改善服务器的性能 服务器的性能改善是依赖于数据的。没有可靠的数据基础而更改应用或环境会导致更差的结果。分析器提供有用的 Java 服务器应用信息,但由于从单用户负载下的数据与多用户负载下得到的数据是完全不同的,这导致分析器的数据并不精确。在开发阶段使用分析器来优化应用的性能是一个好的方式,但在高负载下的应用分析可以取到更好的效果。 在负载下分析服务器应用的性能需要一些基本的元素: 1、 可控的进行应用负载测试的环境。 2、 可控的人造负载使得应用满负荷运行。 3、 来自监视器、应用和负载测试工具自身的数据搜集。 4、 性能改变的跟踪。 不要低估最后一个需求(性能跟踪)的重要性因为如果不能跟踪性能你就不能实际的管理项目。性能上 1 0 -2 0 % 的改善对单用户环境来说并没有什么不同,但对支持人员来说就不一样了。 2 0 % 的改善是非常大的,而且通过跟踪性能的改善,你可以提供重要的反馈和持续跟踪。 虽然性能跟踪很重要,但有时为了使后续的测试更加精确而不得不抛弃先前的测试结果。在性能测试中,改善负载测试的精确性可能需要修改模拟环境,而这些变化是必须的,通过变化前后的负载测试你可以观察到其中的转变。 3 、 分析器原理 现在几乎所有的分析器都是从同一个起点和约束开始的: Java 虚拟机分析器界面 (JVMPI) ( 参考 "The Java Virtual Machine Profiler Interface") 。 Sun 微系统的 API 允许工具开发商接口或者连接到遵循 JVMPI 的 JVM 上,并且监控运作的方式以及 JVM 运行任何 Java 程序时的关键事件 -- 从单独的应用程序到 Applet 、 Servlet 和企业 JavaBeans (EJB) 组件。 在分析器内启动一个程序意味着生成、捕捉、和观察大量数据,所以所有的分析器都包含着不同的方法来控制数据的流动,在不同的标准以及每一封装包的基础上进行过滤。同样 也可以使用灵活的正规表达式类型模式来完成。 4 、 JPro...