jSonde中文指南

注:采用GPL v3开源协议的jSonde(http://www.jsonde.com)是jTracert的变种升级,拥有更强的统计分析功能,这是本人对这个项目使用指南的翻译。已发布在:

http://www.jsonde.com/jSonde%20help.php

1概述:

jSonde能够帮助你分析java应用程序。

她能够生成序列图、CPU和内存的性能评估以及不同格式的汇总:如jar依赖等。

使用jSonde不需要特别的知识,她适用于不同的操作系统和Java环境。

jSonde主要由2个组件:

1、 一个配置在Java进程中的代理,是为了收集信息

2、 一个用来显示代理收集的信息的GUI

2Java应用中配置jSonde代理

主要有2中方法将jSonde配置到Java应用中:在Java命令行附加特定的参数,或者不重启应用的前提下动态的添加代理。

2.1动态添加代理

将jSonde代理添加到应用程序中最简单的方法:

选择按钮"File" / "Attach to Sun JVM",你可以看到如下对话框:

height=325

在这个对话中列出的是当前你电脑上所有的Java应用程序(手册其他章节中有关于这个对话框中其他的区域介绍)。需要注意的是这个特性只在JVM1.6+测试过,可能不能在其他版本的Java虚拟机中正常使用。

2.2通过命令行参数添加代理

假设你是通过输入命令:”java -jar app.jar”来启动Java应用程序的。

你需要在命令行添加新的参数才能使应用启动时具有jSonde代理特性.

新参数如下:

java -javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001-jar app.jar

不仅可以在J2SE应用中使用jSonde分析程序,下面还有在Tomcat、JBoss和其他容器中使用jSonde分析程序的示例。

3Apache Tomcat

Microsoft Windows

启动脚本:%TOMCAT_HOME%/bin/catalina.bat

在脚本文件中添加如下参数:

set JAVA_OPTS=-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 %JAVA_OPTS%

如果tomcat是通过Windows服务或者系统托盘启动的,那么就添加下面的参数:

-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001

GNU/Linux & Mac OS X

启动脚本: $TOMCAT_HOME/bin/catalina.sh

在脚本文件中添加如下参数:

JAVA_OPTS="-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 $JAVA_OPTS"

4JBoss

Microsoft Windows

启动脚本:%JBOSS_HOME%/bin/run.bat

在脚本文件中添加如下参数:

set JAVA_OPTS=-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 %JAVA_OPTS%

GNU/Linux & Mac OS X

启动脚本: $JBOSS_HOME/bin/run.sh

在脚本文件中添加如下参数:

JAVA_OPTS="-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001 $JAVA_OPTS"

5其他的应用服务器

查看应用服务器配置文件中设定jvm参数的地方,

注意:应该和你指定Memory选项:-Xms & -Xmx在相同的位置

6applets使用jSonde

jSonde能够分析在安装了Java Plugin的浏览器中运行的applets。

在Java(TM) Plug-in Control Panel/ Advanced/Java Runtime Parameters中添加如下选项:

-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001

在Windows平台下,通过控制面板访问"Java(TM) Plug-in Control Panel"

注意:如果设定选项过程中浏览器正在运行,那么设定完成后你必须重启浏览。

还可以在appletviewer添加参数-J-javaagent:<path-to-jSonde-folder>/lib/jsonde.agent-1.0.0.beta6.jar=60001

然后通过appletviewer启动applets,此时jSonde也会起作用的。

7通过命令行参数连接jSonde代理

在将jSonde代理参数添加到启动脚本并且启动程序之后,会输出如下信息:

jSonde agent started

现在可以启动jSonde GUI,然后选择”File”¥”New Project” 按钮。会看到如下的对话框,这个对话框已经在 “动态添加代理”章节中介绍过了。

height=325

Project name

jSonde工程名称,用来创建工程文件。

Project files location

指定jSonde工程文件存放位置。每个工程是由一些文件名相同、后缀名不同的文件组成。

Agent host

运行jSonde代理的电脑IP地址。如果jSonde GUI和代理在同一个台电脑上,使用127.0.0.1就行了。

Agent port

连接jSonde代理和GUI的TCP端口。

Filters

过滤器-指定需要被分析的文件。下面的章节有介绍。

8jSonde中的过滤器

能够在jSonde指定过滤器来分析特定的Java类,这样就可以只分析你编写的Java类,同时还可以提升效率。

假设你所有的类文件都在包”com.mycompany”中,首先需要排除所有的类,不选择”*”,然后选择”com.mycompany”包。

最后点击”Connect”按钮-jSonde已经开始工作了。

9使用jSonde分析应用程序

可以使用主菜单或者左侧的accordion 面板来打开不同的视图:序列图、报表、profiling等。

10查看序列图

选择”Sequence Diagrams”,会看到由应用程序中的类组成的树。这棵树的根节点是有jSonde发起”root”方法调用。

在这些指定类的生命周期中,”root”方法是第一个被调用的函数。(见上面关于过滤器的部分)

如果在选定的方法上双击,会在工作去打开一个新的序列图标签。

可以使用工具栏上的按钮来调整图的显示,鼠标拖动也同样可以。

height=364

11查看报表

选择”Reports”来查看这些报表,也可以通过主菜单来访问。

11.1依赖报表

这类报表是用来查看工程源码依赖的第三方资源(例如.jar文件),还可以用来查找缺失、冗余的依赖。

height=370

11.2关于极端代码的运行时间报表

通过运行时间找出极端代码:

按照分组jar文件的方式列出运行最“慢”或者最“多”被使用的方法

height=342

11.3抛异常最多的方法

这种报表用来汇总抛异常最多的方法。如果一个方法抛出一个异常次数很多,那么就需要复审它的接口了。

height=347

12jSonde 分析

jSonde支持CPU和内存监控分析,能够找出执行次数最多的方法、创建次数最多的对象等。

点击 accordion 面板中的”Profiler”,然后选择合适的profile视图。

12.1CPU profiler

CPU profiler 显示方法被调用的测试已经方法总共运行的时间。为了方便浏览,数据时按照树的方式显示:

height=356

12.2堆分析

堆分析能够帮助用户浏览Java堆快照,分析哪些对象经常被创建、哪些对象占用大量的内存,以及其他的数据。

height=363

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值