msnshow 发表于 2011-11-30 20:36:06

第九步、
检查需求通知
集成向导完成配置,所有必须的信息会进行通知,请检查,点击下一步。如图:

msnshow 发表于 2011-11-30 20:36:29

第十步、
完成
选择是否立即运行

msnshow 发表于 2011-11-30 20:37:00

6.1.3Convert session 可能转换已经存在的本地的 session 成为远程session或者是offline profiling sessions6.1.4 Open snapshot 可以通过打开*.jps文件来打开原来保存过的session
6.2 管理session 6.2.1 Application settings dialog 6.2.1.1 session名
可以根据自己的需要给session命名
6.2.1.2 session类型
Local sessions:


msnshow 发表于 2011-11-30 20:37:36

Remote sessions 可以连接由JPofiler剖析代理启动的应用。剖析代理监听的默认端口是8849

msnshow 发表于 2011-11-30 20:38:33

2.1.2.3Applet sessions 用来剖析applets,你需要提供包含applet的HTML页面的URL 2.1.2.4 Web Start sessions 也可以剖析Java Web Start 应用,只需要给出JNLP 文件的URL或者选择一个缓冲应用
6.2.2 Profiling settings 6.2.2.1 Adjusting call tree collection options

msnshow 发表于 2011-11-30 20:38:40

dynamic instrumentation(动态获取)
选择动态获取,在JVM加载类时,JProfiler 修改所有未过滤的类的字节码。JAVA 核心类(java.*)会自动被过滤掉,无法剖析。动态获取比取样式更加精确。
sampling JProfiler 定期检查所有线程调用的堆栈数。即使不进行过滤,取样方式也会快很多,但精通性很低并且不能实时显示
取样周期可以在1-20 ms间调整。如果取样太频繁,会导致CPU占用过高。
full instrumentation(全部获取)
所有的方法调用都会被跟踪,这样可以监控到JAVA核心类(java.*),但比动态获取慢,尤其是1.4 JVMs 。在1.5 JVMs (JVMTI)中不能使用。
使用全部获取你可以随意地显示具体的类调用的方法而不是某个方法在哪个类中实现。活动过滤设置( active filter sets ) � Exclusive(独占的) 在下表中,你为会话选择哪些过滤集是活动的。这些过滤器指定CPU监控的结束点。在包或类中匹配过滤集中的某一个,进一步的调用其它被过滤的类将在调用第一个被过滤的方法时失败。在被过滤的类中,方法是不透明的并且在call tree view中标为红色. 过滤集可以在general settings的"Filter sets" 标签中设定。� Inclusive(包含的) 输入逗号分隔类和包的过滤器。在CPU监控中,只有符合这些包或类的调用才能够被显示。
例如,如果你指定com.mycorp.,com.othercorp. 作为一个包含的过滤器,一个调用com.mycorp.MyClass.myMethod() 和它做的所有调用才会被度量和显示。而所有从 com.mycorp.MyClass.myMethod() 发起的调用都不属于包com.mycorp 和com.othercorp ,它们是不透明的并且在call tree view.标识为红色。6.2.3 JAVA 子系统

msnshow 发表于 2011-11-30 20:39:11




在此标签下,你可以选择JProfiler如何记录J2EE相关的JAVA子系统。
� 记录服务调用 JProfiler 使用仪器监控几个J2EE服务层并记录象服务调用的执行时间等语义数据。记录仪器不需要依赖,可以为所有驱动或服务提供商工作。服务调用在call tree view中有解释并且可以在hot spot view选为热点。
下面的服务类型可以被单独激活:� JDBC calls � JMS calls JNDI calls � J2EE awareness 如果选择了Split call tree for each request URL , JProfiler将分析调用servlets 和 JSPs的URL。针对每个URL,在call tree中都创建一个新的节点。URL也能够在hot spot view选择成了一个热点类型。这样做的话,你可以在单独的页面或请求中区分性能问题。
缺省,只有没有查询参数的URL会使用上面的分离进程。为了在call tree中保留选择的参数,你可以在retained request parameters文本框中输入要保留的参数。
如果要显示所有的请求,请选择Show request URLs that are outside the call tree.

msnshow 发表于 2011-11-30 20:39:44

6.2.4 features � Enabled profiling features 在此标签中,你可以调整监控的属性,以提高软件执行速度,减少内存使用。
Disabled profiling features Disable call tree collection When you record CPU data or allocations, JProfiler collects information about the call tree. You might want to record allocations without the overhead of recording the allocation call stacks: If you don't need the allocation view in the heap walker, the allocation call tree and the stack trace information in the monitor usage views, you can switch off call tree collection. This will speed up profiling considerably and reduce memory usage. Disable monitor contention views if you are not interested in monitor contention events, you may switch data collection off by selecting this checkbox to lower the memory consumption of the profiled application. If monitor contention views are enabled, the following settings govern the level of detail for the monitor contention views: � Monitor contention threshold Select the minimum time threshold in microseconds (μs) for which a monitor contention (i.e. when a thread is blocking) is displayed in the monitor usage history view. � Monitor waiting threshold Select the minimum time threshold in microseconds (μs) for which a monitor wait state (i.e. when a thread is waiting) is displayed in the monitor usage history view. • Allocation call tree The information depth of the allocation call tree and the allocation hot spots view is governed by this setting. Live objects By default, only live objects can be displayed by the allocation views. Class-resolution is enabled. Live and GCed objects without class resolution Live and garbage collected objects can be displayed by the allocation views, depending on the selection in the allocation options dialog. Class-resolution is disabled, i.e. class selection in the allocation options dialog will not work in this setting, only the cumulated allocations of all classes and array types can be displayed. This setting consumes more memory than the first setting and adds a considerable performance overhead. Live and GCed objects Live and garbage collected objects can be displayed by the allocation views, depending on the selection in the allocation options dialog. Class-resolution is enabled. This setting consumes more memory than the other settings and adds adds a considerable performance overhead. Select record object allocation time if you would like to be able to o use the time view in the heap walker o sort objects by allocation time in the reference graph and the data view of the heap walker. o See allocation times for the current objects in the reference graph and the data view of the heap walker. This setting consumes more memory for recorded objects. • Call tree By default, JProfiler does not resolve line numbers in call trees. If you enable show line numbers for sampling and dynamic instrumentation, line number resolution will be enabled for the call tree collections modes of "Sampling" and "Dynamic instrumentation". For "Full instrumentation", line number resolution is not available. If the aggregation level is set to "methods" and a method calls another method multiple times in different lines of code, line number resolution will show these invocations as separate method nodes in the call tree and the allocation call tree. Backtraces in the hotspot views will also show line numbers. Note that a line number can only be shown if the call to a method originates in an unfiltered class.

msnshow 发表于 2011-11-30 20:40:06

6.3 监测视图
6.3.1 内存视图
JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
6.3.1.1 所有对象(ALL objects)
所有对象视图显示所有加载的类的列表和在堆上分配的实例数。只有Java 1.5 (JVMTI)才会显示此视图。要查看特定时间段对象的分配,并记录分配的调用堆栈,请使用“记录的对象视图” 有一个集合体等级选择器,你可以在以下几种类型中切换:

类(classes):每一行显示一个单独的类,这是默认的集合体类型

包(packages):每一行显示一个单独的包,子包不包含在内。在这个集合体等级内,表是树形的。你可以点击树节点,查看其包含的类
J2EE组件( J2EE components):每一行是一个J2EE组件。此模式类似类模式中的过滤器,能够让你快速检查应用中加载的J2EE组件。
在表中显示三行,可以排序
� 名字:根据集合体等级的不同,分别显示类、包或J2EE � 实例数: � 大小:显示所以分配实际的总大小。只包括相应指针的大小,不包含引用数组和实例的大小。以字节显示。只包括对象数据,不包括类使用的JVM大小,也不包含类数据和本地变量大小。
更新频率可以在profiling settings dialog的miscellaneous tab中设置。所有对象视图的更新频率是根据堆上的对象数来自动调整的,如果堆上有太多对象,所有对象视图的计算变得昂贵,所以更新频率会降低。你可以随时刷新以获取最新数据。
你可以在class tracker增加包或类。如果类跟踪器没有记录,则开始记录class tracker 中配置的所有类;如果正在记录不同的对象类型,所以的记录数据被清空
你可以冻结所有的视图让所有的视图对象保持静态
你可以标记当前值并显示差异值。6.3.1.2 记录的对象(Recorded objects)
记录的对象视图显示所有已记录对象和数组的列表,包括堆上分配的实例数。只有已记录的对象在此视图中显示。配置记录的细节请参见memory section overview 如果选择了某个包或类,你可以从记录对象视图跳转到分配调用树和分配热点。方法是右键点击,选择要跳转的视图。
你可以在class tracker增加包或类。如果类跟踪器没有记录,则开始记录class tracker 中配置的所有类;如果正在记录不同的对象类型,所以的记录数据被清空
记录的对象视图可以根据对象的活动状态进行过滤:
� 活动对象(Live objects)
只显示当前在内存中的对象
� 垃圾回收对象(Garbage collected objects)
被显示被回收的对象
� 活动的和垃圾回收对象(Live and garbage collected objects)
显示所有被创建的对象
右键选择Change view mode 或者使用View->Change view mode切换三种模式
你可以标记当前值并显示差异值。

msnshow 发表于 2011-11-30 20:40:33

6.3.1.3 分配调用树(Allocation call tree )
分配调用树视图
显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件
6.3.1.4 分配热点视图(Allocation hot spots view)
分配热点视图显示所选类的对象被分配在哪儿的方法列表。分配到至少占总数1%的方法才会被显示。方法可以根据active filter sets设置进行过滤。此视图和CPU section 里的hot spots view视图有些类似,只是显示的是分配的类的实例数和数组而不是时间度量对于每个热点都可以显示它的跟踪记录树。
6.3.1.5 类跟踪(Class tracker)

6.3.2 堆遍历(Heap Walker) 6.3.2.1 类(Classes) 显示所有类和它们的实例
6.3.2.2 分配(Allocations) 为所有记录对象显示分配树和分配热点
6.3.2.3 索引(References) 为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输入视图和输出视图的功能
6.3.2.4 数据(Data) 为单个对象显示实例和类数据
6.3.2.5 时间(Time) 显示一个对已记录对象的解决时间的柱状图

msnshow 发表于 2011-11-30 20:40:46

6.3.3 CPU视图
6.3.3.1 调用树视图(Call tree view)
调用树显示一个线程从上向下调用树。可以根据过滤设置向上或向下过滤显示。
JProfiler自动检测J2EE组件并在调用树中显示相关的节点。使用不同的图标显示不同的J2EE组件类型
� servlets:黄色倒心形
� JSPs:蓝色倒心形
EJBs:红色倒心形
对于JSPs 和EJBs, JProfiler显示名为:
� JSPs:JSP 源文件路径
� EJBs:EJB界面名称
如果URL可以被细分,每个URL请求使用一个特殊的符号创建一个新的结点以URL:做前缀,后面跟上细分后的URL请求
调用树视图集合体等级选择有四种:
� 方法,也是默认等级。每个节点都是一个方法调用。特殊的J2EE组件方法有他们自己的图标和显示名,上面讲到过。真实的类名以方括号括起
� 类:每个节点是一个单独的类。特殊的J2EE组件方法有他们自己的图标和显示名,上面讲到过。真实的类名以方括号括起
� 包:每个节点是一个单独的包。不包括子包 � J2EE组件:每个节点是一个J2EE组件,如果组件有独立的显示名,真实类名省略。
调用树不显示JVM中的所有方法,只显示:
� 未过滤的类:根据你配置的过滤器设置没有过滤的类 未过滤的类的第一级调用: 未过滤的类对过滤的类的第一级调用,对过滤类的深一级的调用不显示。过滤的节点在左上角以红色标记。
线程实体方法: 方法Runnable.run()和主方法总是被显示的,无论是否过滤
一个特殊的结点是桥结点,本来在视图中不显示,但其子孙节点在视图中显示。
如果在 view settings中设置了percentage bar模式,调用树中的每个节点都会显示一个百分比条,显示当前节点的内部时间占总时间的百分比,当前节点包括其所有子孙节点和红色高亮的部分
在view settings可以设置以下内容:

msnshow 发表于 2011-11-30 20:41:12



1)
节点描述� 百分比数:考虑树的根或调用节点 � 总时间度量:ms或μs 。包括调用其它节点的总时间。
� 内部时间度量:ms或μs。内部时间,不包括调用非过滤类
� invocation count:显示在此路径中节点被调用的频繁程度。
� 是否显示方法调用全名 � 是否显示方法调用签名(显示参数) � 是否在括号内显示平均时间 2)
时间范围
� 自动 � s � ms � us 3)
显示极限
� 隐藏小于一定百分比的调用 4)
百分比计算
� 绝对 � 相对 名称显示依赖集合体等级:方法、类、包和J2EE组件
行数在以下情况下会显示:行数显示的是调用(invocation)的行数,还不是方法本身的行数
� 集合体等级为方法 � 在profiling settings设置中选择了显示行数
� 调用类为未过滤类 你可以选择任何一个节点,然后选择View->Set as root ,将选择的节点改为根节点。如果在view settings 里,百分比基数设置为“total thread time”,百分比会按照新的根节点重新计算。选择View->Show all返回所有视图
你可以停止或重启CPU数据获取来清空调用数,也可以冻结所有视图让调用数保持静态

msnshow 发表于 2011-11-30 20:41:30

6.3.3.2 热点视图(Hot spot view)
热点视图显示选择类型的调用列表。截去了占总时间小于0.1%的点。
热点类型"hot spot type"下拉中可选择,包括两种:
� 方法调用(method calls)
� method calls (show filtered classes separately) 从方法调用中计算显示的热点,被过滤的类计算自己的热点,默认为此模式。
method calls (add filtered classes to calling class) 从方法调用中计算显示的热点,被调用的类被加到调用类上,除非是线程实体方法(run和main 方法) 根据你选择的集合体等级不同,方法热点也会变换。 � J2EE 相关的调用
� JDBC calls 显示的热点为JDBC 调用。需要在profiling settings中设置为可用。
� JMS calls 显示的热点为JMS 调用。需要在profiling settings中设置为可用。
� JNDI calls 显示的热点为JNDI 调用。需要在profiling settings中设置为可用。
� URL invocations 显示的热点 URL调用。需要在profiling settings中设置为可用。在profiling settings中,你需要指定是所有的URL都被显示,还是调用一个未过滤类的URL才会被显示,默认为后者。

msnshow 发表于 2011-11-30 20:41:59

6.3.3.3 调用图(Call graph)
调用图静态地显示所选择节点计算出线程调用图。节点可以为方法、类、包或J2EE组件。
计算调用图,点击工具栏中的Generate graph或者选择View->Generate graph 。
在图形计算之前,会启动调用图向导。结果图形是静态的,并能够重新计算。调用图向导会记录你最近一次的选项。
调用图向导如下:
第一步:选择图选项

msnshow 发表于 2011-11-30 20:42:28

调用图能够为所有线程、一个线程组和单个线程的所有集成等级生成调用图。线程状态选择可以控制在调用图中显示的时间含义。如在线程状态中,选择了Runnable,在调用图中,Total Time表示的就是线程处于Runnable的时间。
第二步:选择第一个节点:选择生成调用树的首节点,点击完成,生成调用树。

msnshow 发表于 2011-11-30 20:43:23

系统提供工具栏,可以对图形进行不同的显示操作。


选择图展现方式,包括四种方式:

msnshow 发表于 2011-11-30 20:45:51

1)
按等级展现
2)
按等级展现(由上到下)
3)
组织式展现
4)
正交展现
还可以选择一个节点,右键,显示的图形如下:



与屏幕右方显示的工作栏中基本操作一样,一些不同的,下面说明。
Show Source:显示此方法或类的源代码,如下图。


msnshow 发表于 2011-11-30 20:46:24

Show Bytecode:显示此方法或类的字节码,如下图:

msnshow 发表于 2011-11-30 20:46:33

6.3.4 线程视图
6.3.4.1 线程历史视图
按照线程开始的顺序显示JVM中所有线程状态的详细历史信息
在视图左手点,线程的名字固定显示,其它部分是滚动度量工具,在水平轴上显示时间。时间轴的开始时间与JVM的第一个线程的时间保持一致。每个活动的线程用带颜色的线标明,从线程开始到线程结束。颜色标识线程的状态:
� 绿色 绿色表明线程正在运行并能接收CPU时间。不表明线程正在消耗CPU时间,只表明线程准备运行并且没有阻塞或睡眠。线程被分配了多少CPU时间,依赖于不同的其它因素,如总的系统负载,线程优先级和调度的运算法则
橙色 橙色表示线程在等待。线程正在睡眠并等待计时器或其它线程唤醒
红色 红色表示线程阻塞。线程尝试进入同步代码区或由其它线程控制的同步方法 蓝色 亮蓝色表示线程在Net I/O操作,线程在等待JAVA库的网络操作完成。在线程监听socket连接或者等待读写数据到socket中时,会产生这种状态。
在视图的顶部,有一个线程过滤器,你可以按以下方法进行过滤:
活动状态liveness status 活动的和死线程Both alive and dead threads � 只显示活动的线程 � 只显示死线程 �

名称 在文本框中,你可以输入线程的全名或部分名称进行过滤。也可以使用通配符("*" and "?")选择线程组。可以用逗号隔开多个过滤项进行过滤,如AWT-, MyThreadGroup-*-Daemon. 线程历史视图有两种显示模式:
� 固定时间范围fixed time scale 此种模式下,时间轴的刻度一直保持不变,如果显示超出屏幕范围,可以使用滚动条查看,如果视图是在自动跟踪模式下,刚总是显示当时时间下的图形。
也可以使用 zooming in或zooming out来调整显示的范围。� 固定窗口范围scale to fit window 此种模式下,在当前视图中会显示整个时间段的图形。Zooming在此模式下不能使用

msnshow 发表于 2011-11-30 20:47:06

6.3.4.2 线程监控视图
显示当前运行的线程列表以及相关的时间和状态信息。显示的六列:
� 名称Name 显示线程名称,如果线程没有被特别命名,则使用JVM提供的名称。想让此视图更加有用,最好将你自己创建的线程使用setName() 进行命名。
� 组Group 显示与此线程相关的线程组的名称
� Start time 显示线程开始的时间,时间是根据JVM中第一个线程创建的时间还计算的。
� End time 只有在view settings设置了显示死线程时才能看到这一列,显示线程死去的时间,或者线程还活着但成为空线程的时间,时间是根据JVM中第一个线程创建的时间还计算的。
� CPU time 显示线程消耗的CPU时间
Note: CPU时间一列,只有在profiling settings中的Miscellaneous栏中设置CPU time type 为Estimated CPU times ,并且当你记录CPU数据时,CPU时间才会被度量,否则CPU时间一栏总是空的。
如果你的系统和JVM不支持线程特定的CPU时间报告,这栏也是空的
� Creating thread 显示线程的名字和创建此线程的线程组。
� Status 显示线程的状态,相当于线程历史视图中的状态报告
如果你监控的是JAVA1.5或以上版本(JVMTI),在屏幕的上半部分就显示上面的表,屏幕的下半部分显示所选线程的线程创建堆栈跟踪。堆栈跟踪只有线程创建时记录CPU数据才会显示。
页: 1 [2] 3 4 5
查看完整版本: 谁知道jprofiler怎么使用啊