VisualVM Btrace使用
2015-06-30 02:34
423 查看
int a = (int) (Math.random() * 1000);
int b = (int) (Math.random() * 1000);
System.out.println(add(a, b));
}
public static void main(String[] args) throws IOException {
BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
BTraceTest bTraceTest=new BTraceTest();
bReader.readLine();
for (int i = 0; i < 10; i++) {
bTraceTest.run();
}
}
}
运行Main函数,阻塞等待控制台输入。
3. 在VisualVM中选择该监控服务右键点击trace application.
在TracingScript类中输入以下代码
/* BTrace Script Template */
import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
@BTrace
public class TracingScript {
/* put your code here */
@OnMethod(
clazz="com.lss.test.BTraceTest",
method="add",
location=@Location(Kind.RETURN)
)
public static void func(@Self com.lss.test.BTraceTest instance ,int a,int b,@Return int result){
println("调用堆栈");
jstack();
println(strcat("方法参数A:",str(a)));
println(strcat("方法参数B:",str(b)));
println(strcat("方法结果:",str(result)));
}
}
点击开始,控制台输出以下表示编译通过:
** Compiling the BTrace script ...
*** Compiled
** Instrumenting 1 classes ...
*** Done
** BTrace up&running
*** Done
** BTrace up&running
4.回到Eclipse 在控制台回车,让程序继续执行,完成后回到VisualVM 则看到控制台输出如下信息。
int b = (int) (Math.random() * 1000);
System.out.println(add(a, b));
}
public static void main(String[] args) throws IOException {
BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
BTraceTest bTraceTest=new BTraceTest();
bReader.readLine();
for (int i = 0; i < 10; i++) {
bTraceTest.run();
}
}
}
运行Main函数,阻塞等待控制台输入。
3. 在VisualVM中选择该监控服务右键点击trace application.
在TracingScript类中输入以下代码
/* BTrace Script Template */
import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
@BTrace
public class TracingScript {
/* put your code here */
@OnMethod(
clazz="com.lss.test.BTraceTest",
method="add",
location=@Location(Kind.RETURN)
)
public static void func(@Self com.lss.test.BTraceTest instance ,int a,int b,@Return int result){
println("调用堆栈");
jstack();
println(strcat("方法参数A:",str(a)));
println(strcat("方法参数B:",str(b)));
println(strcat("方法结果:",str(result)));
}
}
点击开始,控制台输出以下表示编译通过:
** Compiling the BTrace script ...
*** Compiled
** Instrumenting 1 classes ...
*** Done
** BTrace up&running
*** Done
** BTrace up&running
4.回到Eclipse 在控制台回车,让程序继续执行,完成后回到VisualVM 则看到控制台输出如下信息。
相关文章推荐
- web站点发布
- IBM 的 Java 诊断,第 3 部分: 使用面向 Java 的 Lock Analyzer 诊断同步和锁问题
- 使用 JMX 接口来编写 PMI 应用程序
- FTP服务器的搭建
- Java SE 6 新特性: 编译器 API
- Java SE 6 新特性: JMX 与系统管理
- 黑马程序员 IO流
- 扩展 Spring 的 JMX 支持
- 微信公众平台JSSDK开发
- JAVA工具简绍路径
- Quartz 2D 图形上下文栈 矩阵 裁剪
- 关于 Java 性能监控您不知道的 5 件事,第 2 部分
- [.net 面向对象程序设计进阶] (3) 正则表达式 (二) 高级应用
- 感谢那些曾经帮助过我的你们,毕业的你们
- 关于 Java 常用工具您不知道的 5 件事
- 单页图片和文字一起滑动的效果
- Mybatis一对一和一对多配置
- Android.Ant.Python之批量打包(一)
- php 用for循环做,金字塔,菱形,空三角
- IDA一日速成整理笔记