标签:函数 containe 需要 sgu 位置 机器 name dcom blog
用途:btrace主要用于线上调试。通过btrace,可在不改动代码的前提下,方便的发现以下问题:
1.定位性能慢的接口服务;
2.实时打印堆栈信息,定位死锁位置;
3.定位占用大量内存空间的代码块;
4.打印处理流程中的入参、出参信息;
注意事项:
一.
public static
方法的com.sun.btrace.BTraceUtils
类可以从BTrace程序调用。static public void
BTrace类只允许返回方法。所有领域都必须是静态的。for, while, do..while
)二.
BTrace植入过的代码,会一直在,直到应用重启为止。所以即使Btrace退出了,业务函数每次执行时都会执行Btrace植入的代码
BTrace植入过的代码,会一直在,直到应用重启为止。所以即使Btrace退出了,业务函数每次执行时都会执行Btrace植入的代码
BTrace植入过的代码,会一直在,直到应用重启为止。所以即使Btrace退出了,业务函数每次执行时都会执行Btrace植入的代码
安装使用:
1.安装JDK,配置JDK的环境变量;
2.在JDK的安装路径上,打开jvisualvm.exe
3.选择“工具”-“插件”-“可用插件”。
注意:在第三步,可能有的机器会报错:
解决方法:https://blog.csdn.net/xionglangs/article/details/77603343
4.勾选“BTrace”进行安装
5.安装完成后,即可进行本地代码的开发、调试。
如果需要远程调试,需要在服务器端启动tomcat的时候,在jvm参数加上jmx的配置信息({ip},{port}分别替换为具体的ip地址和端口号):
-Djava.rmi.server.hostname={ip} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port={port} -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar
6.编辑btrace脚本
6.1 在需要进行调试的程序(pid)上,右键选择“trace application”
6.2编写脚本
这个脚本的意思是:在方法返回时候,打印入参和出参,并且打印该方法的名称和方法执行耗费时间。
6.3运行脚本效果
btrace官方教程:
https://github.com/btraceio/btrace/blob/master/docs/usersguide.html
标签:函数 containe 需要 sgu 位置 机器 name dcom blog
原文地址:https://www.cnblogs.com/danny-djy/p/10020575.html