扫码咨询 电话咨询
023-68661681
返回
顶部

Loding the player....

本视频来由慧都网提供   查看原视频>>

用VisualVM分析MyEclipse(多图)

MyEclipse包含了Sun公司的VisualVM分析器的高级集成。剖析可以为您收集有关应用程序的数据,因为它们运行并监测数据的统计。

  • 剖析一个独立的Java应用程序
  • 剖析一个Web应用程序
  • 剖析一个Java小程序

持续时间:20分钟

没有MyEclipse?立即下载

1. 确保分析器安装

VisualVM被包含在MyEclipse当中,但其却未必是您基础安装配置的一部分。如果没有安装,您可以很容易地添加组件。

(1)选择Help>Choose Components。

(2)在Selected中,在过滤字段中输入VM找到MyEclipse VisualVM的分析器组件。

用VisualVM分析MyEclipse
检查VisualVM的Profiler软件

(3)如果未安装VisualVM,从左侧选择它并将其移动到右侧添加的组件中。为了可靠地分析,您的应用程序必须在JRE 1.6.0更新的7或者更高的版本中执行。

2. 剖析一个独立的Java应用程序

(1)选择MyEclipse>Examples On-Demand来下载示例项目的分析。

(2)点击搜索,然后搜索swing。

(3)点击Swing Contact Manager安装按钮示例来将其安装到您的工作区中。

用VisualVM分析MyEclipse
安装示例应用程序
2.1 性能分析

(1)右键单击M4M Contact Manager示例项目,并选择Profile As>Java Application。这将启动性能分析模式的剖析。

用VisualVM分析MyEclipse
启动性能分析模式

(2)选择Main – com.myeclipseide.examples.m4m作为主类,然后单击确定,并选择性能分析模式,然后点击确定继续。

(3)在contact manager应用程序中选择一些新的名称来观察分析,此信息会被收集到VisualVM窗口。

用VisualVM分析MyEclipse
当名称被选中收集配置文件信息

(4)在列表中选择一个名称,然后单击删除会看到removeButtonActionPerformed方法被添加到列表中,以1为它的调用计数,每次单击删除后此计数都将增加。

用VisualVM分析MyEclipse
结果用删除按钮

(5)点击保存此时收集到的结果快照。使用过滤器来只显示您要查看的信息,您可以将其保存为以后要研究的文件。

用VisualVM分析MyEclipse
过滤快照信息

(6)关闭应用程序和VisualVM的窗口。

要在此运行分析会话,可以重复步骤1或者点击分析图标的下拉箭头。选择您要查看的剖析配置,如果先前所分析的应用程序仍在运行,在您启动另一个分析会话之前系统会提示将其关闭。

用VisualVM分析MyEclipse
从工具栏中运行配置文件
2.2 自定义性能分析

(1)右键单击该项目,并选择Profile As>Profile Configurations,或者点击文件图标的下拉菜单,并选择Profile Configurations。

用VisualVM分析MyEclipse
打开配置文件配置

(2)在Java应用程序节点下,从走遍的列表中选择应用程序。

(3)选择配置文件选项,然后在性能选项中更改分析器设置。

用VisualVM分析MyEclipse
性能分析器设置

配置文件

  • 此字段指定根方法分析器使用您应用程序的仪表,只有根方法和在应用程序其余部分继续运行的方法被称为仪表。
  • 使用添加按钮来指定一个方法、类或包。如果指定一个类,那么类的所有方法都会成为仪表的根。如果指定了一个包,那么包中所包含的所有类方法会成为仪表的根(根据您在根分析向导中的选择,这就意味着只有被选中的包或子包)。
  • 默认情况下,MyEclipse规定根包括项目中的所有包。

只/不要配置文件下面的类

  • 该分组过滤器控制这些包被(或者不)分析。除了根方法本身以外,如果方法满足此处的定义,那么分析数据值被收集和显示。
  • 默认情况下,MyEclipse为一个只包含在项目中的包指定一个过滤器,您可以在Lazy、Eager和Total仪表之间进行选择。

仪表方案

  • Lazy(MyEclipse默认值):由于它的低开销,所以它是长时间运行仪表的最佳方案。当使用这个方案时,首先检测的就是根的方法。当第一次执行根方法时,所有的方法调用都会被检测。
  • Total:在这个方案中,当加载类时这个类中的所有方法都要检测。对于长期运行的应用程序来说,由于它的高分析开销,因此它并不是一个好的方案。然而对于那些短暂工作的应用程序来说,在分析启动应用程序时它是有用的。
  • Eager:在这个方案中,每当一个类被加载时,分析器都将通过根方法直接或间接的定位仪表。因此仪表的方法数量比Lazy方案高得多,但是比Total更低。

分析启动时的基本框架

  • 如果应用程序的JVM启动也选择profiled.During性能分析的方法,在性能分析的跟踪方法中,进入和退出呼叫的方法会插入到各仪表的方法中。根据所使用的跟踪技术,这些呼叫可能会需要时间戳。

方法跟踪

  • 精确:有了精确的跟踪,在每个方法被调用的时间中进入和退出呼叫采用时间戳。这将会给你准确的执行方法的时间读数(进入和退出相应通话的时间),但由于大量调用OS高精度计时器会增加分析的开销。
  • 采样:时间戳采用的只是方法进入和退出呼叫时指定的采样发生在interva的末端。其方法调用仍计算准确,这个选项就大大降低了分析的开销,但其结果的准确性可能比那些使用精度技术的更低一些。

仪表方法调用()

  • 如果启用,所有的呼叫都使用反射(java.lang.reflect.Method.invoke())的跟踪和仪表。

仪表getter / setter方法

  • 启用getter和setter方法的仪表。

仪表的空方法

  • 启用不包含可执行代码的方法仪表。

分析新的threads / runnables

  • 如果启用,每次可运行的run()方法来视为根方法,也将导致调用一切方法来进行检测。

排除时间花费在Thread.sleep()和Object.wait()上

  • 如果选择了,这些方法都不会被分析。

分析线程数限制

  • 分析数据只从注册线程时收集。当未注册的线程进入仪表代码时,它就被注册了。当注册的线程的数目达到指定的限制,进一步停止登记。该计数器可以在分析器复位时重置收集的结果。
2.3 内存性能分析

(1)右键单击该项目,选择Profile As>Profile Configurations,并从列表左侧的Java应用程序节点下选择您的项目。

(2)选择配置文件选项,然后选择内存选项。

用VisualVM分析MyEclipse
内存配置文件设置

(3)自定义设置,然后单击配置文件来启动内存分析。

仅记录对象创建

  • 选中后,分析器收集有关的数量、类型和分配对象的位置信息。目前由目标JVM(和它加载的每个新类)来加载所有类仪表。

记录对象创建和垃圾收集

  • 如果选择此选项,除了上述选项提供的数据,你也给有关对象生动活泼的信息,即有多少给定类型的对象仍然存在。分析垃圾收集除了创建对象还增加了分析开销。

跟踪每一个X分配

  • 尽管特定类别的分配对象的数量会被准确地跟踪,但完整的分析数据是单独进行跟踪的,并且并且只收集每一个X(即类)个对象的分配。记录有关每一个分配信息,该图可以被设置为1,尽管这会显著的增加分析开销。默认情况下,MyEclipse跟踪每10个对象分配。

分配记录的堆栈跟踪

  • 如果启用,当对象创建被记录时,此时的调用堆栈也会被记录。默认情况下,整个调用堆栈都会被记录,但限制堆栈深度与X帧选项可以用于限制帧的数目,并减少分析开销。
用VisualVM分析MyEclipse
显示对象分配痕迹的内存快照

3. 分析一个Web应用程序

(1)右键单击Web项目,并选择Profile As>MyEclipse Server Application。

用VisualVM分析MyEclipse
启动web应用分析

(2)自定义设置按照第2节中的说明。分析配置您的Web应用程序是在MyEclipse服务器应用节点配置文件中的配置窗口下。

用VisualVM分析MyEclipse
Web应用程序的配置文件设置

4. 分析一个Java小程序

(1)右键单击小程序的项目,并选择Profile As>Java Applet。

用VisualVM分析MyEclipse
启动Java小程序分析

(2)自定义设置按照第2节中的说明。分析配置您的Java小程序是在Java Applet配置文件中的配置窗口下。

用VisualVM分析MyEclipse
对Java小程序的配置文件设置

5. 其他的VisualVM功能

在VisualVM的监视器选项中包含应用程序的当前状态、CPU和内存的使用情况概述。

用VisualVM分析MyEclipse
显示器选项

线程选项包含了您的应用程序的线程列表。

用VisualVM分析MyEclipse
Threads选项

以及您可以深入到获得特定线程的详细信息。

用VisualVM分析MyEclipse
Threads选项详细信息

点击应用程序按钮,右键单击您的应用程序并选择Thread或堆转储。

用VisualVM分析MyEclipse
转储申请
用VisualVM分析MyEclipse
线程转储
用VisualVM分析MyEclipse
堆转储

欢迎来到慧都网!

请告诉我您的需求?

或留下您的联系方式

我们将尽快为您解答!

请您留言

欢迎来到慧都网,客服值守时间为:工作日9:00-12:00,13:00-17:30,或直接拨打:18166486035(微信同号)

提交