WebSphereStudio中的J2EE应用程序概要分析(2)-创新互联
WebSphere Studio 中的J2EE应用程序概要分析(2)
[@more@]选择 WebSphere J2EE 过滤器集阻止了代理收集与标准的 J2EE 包有关的数据。而我们想要收集的是与我们正在进行概要分析的应用程序有关的数据。为了达此目的,可以添加过滤器来包括 acme.* 包。单击 Add(上面打了圈),然后输入 Add filter 对话框中所示的值。单击 OK,然后选择 Next 以进行下一步操作。一些来自您希望过滤掉的包中的数据会不合逻辑地出现在概要分析视图中。这是一个已知的问题。
创新互联公司公司2013年成立,先为措勤等服务建站,措勤等地企业,进行企业商务咨询服务。为措勤企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。各种概要分析选项(如图8所示)允许您进一步指定概要分析代理可以收集的性能数据的详细程度。选择适当的选项,然后单击 Next 以进行下一步操作。
图8. 指定概要分析选项
498)this.style.width=498;" />
Profiler 现在配置完毕。单击 Finish。
在成功地完成了 Profiler 的配置过程之后,系统就启动 Profiling 透视图。已配置的概要分析代理会显示在 Profiling Monitor 中。单击 OK以进行下一步操作。
图9. Profiler 设置完毕
498)this.style.width=498;" />
498)this.style.width=498;" />
498)this.style.width=498;" />
选择实验#1将引出如下所示的页面:
图13. J2EE 透视图——实验1
498)this.style.width=498;" />
实验1是一个简单的应用程序,它把 Employee 类的实例序列化成一个文件。在大多数分布式应用程序中,类的序列化是一个基本的活动。在这第一个实验中,Employee 类的所有成员都将进行序列化。然而,正如您将在实验2中看到的,Employee 类中的某些成员对序列化的目的来说可认为是不重要的,它们被标记为瞬态,并且不进行序列化。因此,实验2中的 Employee 类,需要进行的序列化工作将比较少,而且实验2的性能应该会好得多。不过,在运行实验2之前,我们将回到 Profiling Profiling 透视图,以进一步分析实验1的性能特征。
这些性能数据都是自动收集的,但是并不显示出来。选择 Refresh Views 使 Profiler 以最新的数据填充视图:
图14. 概要分析透视图-- Refresh 视图
498)this.style.width=498;" />
下面的图15展示了 Profiling 透视图中的 Package Statistics 视图。该视图使您能够更全面地了解应用程序中的哪些包需要最多的对象实例和内存。如前所述,一些需要过滤掉的系统级包出现在此视图中。在我们的示例中, acme.business.domain package包是最耗资源的:
图15. Profiling 透视图——Package Statistics 视图
498)this.style.width=498;" />
下面的图16显示了 Profiling 透视图中的 Class Statistics 视图。该视图展示了应用程序中的哪些类需要最多的对象实例和内存。在下面的视图中,类 Project 和 NotTransientEmployee 需要最多的实例和内存,如字段 Total Instances 和 Total Size 所示。Collected 字段指示在全部实例中有多少作为垃圾回收了,又有多少内存由此释放了。因此,在 Active Size 字段显示的该类当前占用的内存数量中考虑了作为垃圾回收的实例。在用于实验1的示例中,我们可以看到(请参见下面的图16), NonTransientEmployee 和 Project 类需要最多的内存和全部实例中的大多数,其中没有一个显示为作为垃圾回收。
图16. Profiling 透视图——Class Statistics 视图
498)this.style.width=498;" />
下面的图17显示了 Profiling 透视图中的 Method Statistics 视图。该图展示了哪些方法需要最多的执行时间。它还指示了调用一个方法需要多少时间。Base Time 字段指示运行一个方法需要多少时间,其中不包括花在调用和运行其他方法上的时间。Cumulative Time 字段指示执行一个方法的总时间是多少,其中包括花在调用和运行其他方法上的时间。Calls 字段指示调用特定方法所需的时间。Average Base Time 字段中的值等于 Base Time 字段中的值除以 Call 字段中的值。在用于实验1的示例中,,我们可以看到(请参见下面的图17), writeNonTransientEmployees() 方法尽管在此应用程序中只调用了一次,但是却显然需要最多的执行时间。而且,所有的时间都花在此方法中,而没有用在调用其他的方法上。
图17. Profiling 透视图——Method Statistics 视图
498)this.style.width=498;" />
下面的图18显示了 Profiling 透视图中的 Object References Table 视图,它显示了对其他类的引用的数量。在下面的图18中,Number of References 字段没有填充。这是 Profiler 中一个已知的问题。
图18. Profiling 透视图——Object References Table 视图
498)this.style.width=498;" />
既然您已经被引入了关键的 Profiling 视图,就关闭 Profiling 透视图并且停止 WebSphere Test Server ProfileServer。在 概要分析(Profiling)下再一次启动 ProfileServer。选择 profiling.html 页面,然后再一次选择 Profile on Server。尝试对实验2进行概要分析。下面的图19在内部 Web 浏览器中展示了 Experiment 2 的结果。再一次打开 Profiling 透视图,然后打开上面讨论的 Profiling 视图。在大多数情况下,实验的结果将使您确信实验2在内存和执行时间方面提供了更好的性能。
图19. J2EE 透视图——实验2
498)this.style.width=498;" />
本文讨论了 WebSphere Studio Profiler 所用的结构组件,并且向您展示了如何安装、配置和使用 Profiler 来更好地理解应用程序的运行时行为。本文还讨论了如何在 Profiling perspective of WebSphere Studio 提供的各种视图中提交和解释性能数据。后续的文章将描述如何对运行在 WebSphere Application Server 上的远程应用程序进行概要分析以及如何使用 J2EE Request Profiler。
(责任编辑:城尘)
网页名称:WebSphereStudio中的J2EE应用程序概要分析(2)-创新互联
网页网址:http://scyanting.com/article/hepid.html