首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

btrace施用及例子

2012-06-29 
btrace使用及例子一, Btrace的简介:??? Btrace是由Kenai 开发的一个开源项目,是一种动态跟踪分析JAVA源代

btrace使用及例子

一, Btrace的简介:

??? Btrace是由Kenai 开发的一个开源项目,是一种动态跟踪分析JAVA源代码的工具。它可以用来帮我们做运行时的JAVA程序分析,监控等等操作,当然,它也不是万能的,BTrace也有一些使用上的限制,如:不能在脚本中新建类等等,这些在官方网站上有很详细的介绍,大家有兴趣可以查看:http://kenai.com/projects/btrace/pages/UserGuide。后面谈到下载Btrace时,下载包里也有。

?

二, Btrace 技术点:

??? Attach API + BTrace脚本解析引擎 + ASM + JDK6 Instumentation

?

三, Btrace 原理:

???? ???

btrace施用及例子

?

本地编写跟踪类,由Btrace 命令行执行即可。

1,本地编译跟踪类。

2,attach远程JVM PID,将class传过去。

3,通过脚本引擎及asm动态变更JVM中的字节码,将跟踪代码嵌入。

4,代码触发后,将结果返回本地输出。

?

四, 例子(跟踪代码与被跟踪代码在一台机器上):

??????? 1)本地先在JVM进程中运行一个类,可以是启动JBOSS服务器的方式(实际应用时的场景)。

??????? 2)下载Btrace 安装包,在本地安装或无需安装,解压即可。

地址:http://kenai.com/projects/btrace/downloads/directory/releases/release-1.2

下载一较新的稳定版本:btrace-bin.zip ,解压到本地。

????????3)将? XXXX\btrace\bin 加入classPath。

????????4)编写跟踪类,比如BtraceTest.java

package com.nio.sample;import com.sun.btrace.*;import com.sun.btrace.annotations.*;import static com.sun.btrace.BTraceUtils.*;@BTracepublic class BtraceTest {    @OnMethod(clazz = "com.component.JobManager",method="addToQueue",location=@Location(value=Kind.RETURN))    public static void func(@Duration long duration){        println(duration);    }}

??????? 5)找到正在运行的被监控代码所在进程的PID,在Btrace/bin 目录下,运行:??? btrace?PID /home/admin/com/nio/sample/BtraceTest.java?

???????? 在控制台即可看见结果,或者运行

btrace?PID /home/admin/com/nio/sample/BtraceTest.java? > 1.log

????????? 将输出结果输出到1.log 中。

??????????????? btrace?com.nio.sample.BtraceTest.java?

?

????? 使用非常方便,但背后的技术点还是很有技巧的。

热点排行