您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页Jprofiler使用介绍--java性能分析工具中文帮助

Jprofiler使用介绍--java性能分析工具中文帮助

来源:测品娱乐
Jprofiler使⽤介绍--java性能分析⼯具中⽂帮助

1、说明

改善Java服务器的性能需要模拟负载下的服务器。创建⼀个模拟环境、搜集数据并且分析结果可能是对许多开发⼈员的挑战。这⾥介绍了使⽤JProfiler跟踪分析Java服务器的性能。

简单的性能问题很容易分离并解决,然⽽,⼤的性能问题,如内存溢出或者系统的罢⼯,通常在系统处于⾼负载情况下发⽣,就不能这么简单的处理了。这些问题需要⼀个独⽴的测试环境、⼀个模拟的负载,并且需要仔细地分析和跟踪。2、改善服务器的性能

服务器的性能改善是依赖于数据的。没有可靠的数据基础⽽更改应⽤或环境会导致更差的结果。分析器提供有⽤的Java服务器应⽤信息,但由于从单⽤户负载下的数据与多⽤户负载下得到的数据是完全不同的,这导致分析器的数据并不精确。在开发阶段使⽤分析器来优化应⽤的性能是⼀个好的⽅式,但在⾼负载下的应⽤分析可以取到更好的效果。在负载下分析服务器应⽤的性能需要⼀些基本的元素:1、可控的进⾏应⽤负载测试的环境。2、可控的⼈造负载使得应⽤满负荷运⾏。

3、来⾃监视器、应⽤和负载测试⼯具⾃⾝的数据搜集。4、性能改变的跟踪。

不要低估最后⼀个需求(性能跟踪)的重要性因为如果不能跟踪性能你就不能实际的管理项⽬。性能上10-20%的改善对单⽤户环境来说并没有什么不同,但对⽀持⼈员来说就不⼀样了。20%的改善是⾮常⼤的,⽽且通过跟踪性能的改善,你可以提供重要的反馈和持续跟踪。

虽然性能跟踪很重要,但有时为了使后续的测试更加精确⽽不得不抛弃先前的测试结果。在性能测试中,改善负载测试的精确性可能需要修改模拟环境,⽽这些变化是必须的,通过变化前后的负载测试你可以观察到其中的转变。3、分析器原理

现在⼏乎所有的分析器都是从同⼀个起点和约束开始的:Java 虚拟机分析器界⾯(JVMPI) (参考\"The Java Virtual MachineProfiler Interface\")。Sun微系统的API允许⼯具开发商接⼝或者连接到遵循JVMPI的JVM上,并且监控运作的⽅式以及JVM运⾏任何Java程序时的关键事件--从单独的应⽤程序到Applet 、Servlet和企业JavaBeans (EJB)组件。

在分析器内启动⼀个程序意味着⽣成、捕捉、和观察⼤量数据,所以所有的分析器都包含着不同的⽅法来控制数据的流动,在不同的标准以及每⼀封装包的基础上进⾏过滤。同样也可以使⽤灵活的正规表达式类型模式来完成。4、JProfiler 简介

是⼀个全功能的Java剖析⼯具(profiler),专⽤于分析J2SE和J2EE应⽤程序。它把CPU、执⾏绪和内存的剖析组合在⼀个强⼤的应⽤中。JProfiler可提供许多IDE整合和应⽤服务器整合⽤途。JProfiler 直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执⾏绪的问题。它让你得以对heap walker作资源回收器的

root analysis,可以轻易找出内存溢出;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能。5、JProfiler 特征

5.1 内存剖析Memory profiler

JProfiler的内存视图部分可以提供动态的内存使⽤状况更新视图和显⽰关于内存分配状况信息的视图。所有的视图都有⼏个聚集层并且能够显⽰现有存在的对象和作为垃圾回收的对象。所有对象

显⽰类或在状况统计和尺码信息堆上所有对象的包。你可以标记当前值并显⽰差异值。记录对象 Record objects

显⽰类或所有已记录对象的包。你可以标记出当前值并且显⽰差异值。分配访问树 Allocation call tree

显⽰⼀棵请求树或者⽅法、类、包或对已选择类有带注释的分配信息的J2EE组件。分配热点 Allocation hot spots

显⽰⼀个列表,包括⽅法、类、包或分配已选类的J2EE组件。你可以标注当前值并且显⽰差异值。对于每个热点都可以显⽰它的跟踪记录树。5.2 堆遍历Heap walker

在JProfiler的堆遍历器(Heap walker)中,你可以对堆的状况进⾏快照并且可以通过选择步骤下寻找感兴趣的对象。堆遍历器有五个视图:?类 Classes显⽰所有类和它们的实例。分配 Allocations

为所有记录对象显⽰分配树和分配热点。索引 References

为单个对象和“显⽰到垃圾回收根⽬录的路径”提供索引图的显⽰功能。还能提供合并输⼊视图和输出视图的功能。数据 Data

为单个对象显⽰实例和类数据。时间 Time

显⽰⼀个对已记录对象的解决时间的柱状图。5.3 CPU剖析CPU profiler

JProfiler提供不同的⽅法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到⽅法、类、包或J2EE组件等不同层上。CPU视图部分包括:?访问树 Call tree显⽰⼀个积累的⾃顶向下的树,树中包含所有在JVM中已记录的访问队列。JDBC,JMS和JNDI服务请求都被注释在请求树中。请求树可以根据Servlet和JSP对URL的不同需要进⾏拆分。热点 Hot spots

显⽰消耗时间最多的⽅法的列表。对每个热点都能够显⽰回溯树。

该热点可以按照⽅法请求,JDBC,JMS和JNDI服务请求以及按照URL 请求来进⾏计算。访问图 Call graph

显⽰⼀个从已选⽅法、类、包或J2EE组件开始的访问队列的图。5.4 线程剖析Thread profiler对线程剖析,JProfiler提供以下视图:线程历史 Thread history

显⽰⼀个与线程活动和线程状态在⼀起的活动时间表。线程监控 Thread monitor

显⽰⼀个列表,包括所有的活动线程以及它们⽬前的活动状况。死锁探测图表 Deadlock Detection显⽰⼀个包含了所有在JVM⾥的死锁图表。⽬前使⽤的监测器 Current monitor useage显⽰⽬前使⽤的监测器并且包括它们的关联线程。

历史检测记录 History usage history显⽰重⼤的等待事件和阻塞事件的历史记录。监测使⽤状态 Monitor usage statistics显⽰分组监测,线程和监测类的统计监测数据。5.5 VM 遥感勘测技术VM telemetry

观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图,如下所⽰:堆 Heap

显⽰⼀个堆的使⽤状况和堆尺⼨⼤⼩活动时间表。记录的对象 Recorded objects

显⽰⼀张关于活动对象与数组的图表的活动时间表。垃圾回收 Garbage collector

显⽰⼀张关于垃圾回收活动的活动时间表。类 Classes

显⽰⼀个与已装载类的图表的活动时间表。线程 Threads

显⽰⼀个与动态线程图表的活动时间表。6 使⽤介绍

6.1 JProfiler's start center

使⽤JProfiler's start center,你可以创建新的会话,编辑已有会话或者打开已保存的会话。在菜单中选择session start center,有以下四个标签:Open session、New session、Convert session和Open snapshot。也可以在⼯具栏中点击图标打开startcenter。

6.1.1Open session

在start center 中,打开Open session标签,在窗⼝中显⽰所有预先定义的会话,如图:

你可以选择⼀个会话,点击OK来打开预定义的会话。

会话也可以被修改、复制、删除和排序。

也可以菜单中选择session Open session,打开Open session窗⼝。6.1.2New session

会话能够通过两种途径创建:

⼈⼯配置:使⽤[New session] 按钮⼿⼯配置⼀个新的session,配置完成后,开始运⾏

通过集成向导:使⽤集成向导上的三个按钮:[New server integration] 、[New remote integration]和[New applet integration]。

会话创建完成后可以⽴即运⾏。在Open session标签页中能够看到新建的会话。

6.1.2.1 New Session

点击New Session按钮,显⽰Application Settings窗体,关于Application Settings配置,请参见2管理session

可以在菜单中选择Session New Session,打开New Session 窗体6.1.2.2 New server integration

点击New server integration按钮,打开集成向导,引导你将JProfiler与本地或远程的应⽤服务器进⾏集成,步骤:第⼀步、选择需要集成的应⽤服务器

如果你所使⽤的应⽤服务器不在列表中,则选择“Generic application sever ”,并点击“下⼀步”;如图:

第⼆步、选择要集成的应⽤服务器地址

选择要集成的应⽤服务器是本地的,还是远程的。如果你选择过程计算机,在选择的计算机上必须安装JProfiler,并选择远程计算机的操作系统,点击“下⼀步”如图:

第三步、指定远程地址

输⼊远程计算机的IP地址或DNS名称,点击下⼀步。如图:

第四步、指定远程安装⽬录

所选远程计算机上必须安装JProfiler,如果未安装,请先安装。如果已经安装,请输⼊安装⽬录,点击下⼀步。如图:

第五步、选择启动脚本

选择所集成的应⽤服务器的启动脚本,如,TOMCAT在WINDOW下常⽤的启动脚本为start.dat。如果脚本是远程的,你必须有远程计算机磁盘的可写权限,或者将启动脚本拷贝到本地。

第六步、选择JVM提供商,版本和模式

当你选择JAVA版本时,系统会⾃动选择推荐的模式

第七步、选择监测的连接端⼝

JProfiler GUI 前端通过指定的端⼝连接被监测的JVM,默认端⼝为8849。请不要选择常⽤的端⼝,如80或8080。

第⼋步、是否等待JProfiler GUI

在开发环境,建⽴选择第⼀项,很容易修改监测设置;如果你选择不等待,在启动应⽤服务器之前要先配置监测设置。VM参数依赖于JProfiler配置⽂件的位置;配置⽂件要与远程计算机上的保持同步。

第九步、检查需求通知

集成向导完成配置,所有必须的信息会进⾏通知,请检查,点击下⼀步。如图:

第⼗步、完成选择是否⽴即运⾏

6.1.3Convert session

可能转换已经存在的本地的 session 成为远程session或者是offline profiling sessions6.1.4 Open snapshot

可以通过打开*.jps⽂件来打开原来保存过的session6.2 管理session

6.2.1 Application settings dialog6.2.1.1 session名

可以根据⾃⼰的需要给session命名6.2.1.2 session类型Local sessions:

Remote sessions

可以连接由JPofiler剖析代理启动的应⽤。剖析代理监听的默认端⼝是8849

2.1.2.3Applet sessions

⽤来剖析applets,你需要提供包含applet的HTML页⾯的URL2.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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务