动态测试方法运行时间的工具BTrace的简单应用
使用情景:
当想要测试某些方法的运行时间,又不能修改代码时,可以尝试使用此工具。
开发环境:
本人使用的时windows,所以只结束此系统的使用。
安装使用:
可以单独安装,也可以作为java visualvm的插件使用,这里介绍java visualvm的插件。
1.打开java visualvm:
jdk的安装路径--bin--jvisualvm.exe 或使用 cmd --> 输入jvisualvm命令打开(需要配置环境变量)
2.安装BTrace插件
工具-->插件-->可用插件-->选择BTrace WorkBench,安装,如果无法安装可能与插件中心的下载路径有关:
如果是这个原因导致可以添加一个新的,并使用如下路径:https://visualvm.github.io/uc/8u131/updates.xml.gz
3.BTrace的使用:
右键选择程序的进程,选择Trace Application,如图:
接下来打开右侧界面,通过编辑脚本即可实现对方法运行时间的测试。
脚本的简单介绍:
/* BTrace Script Template */
import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
@BTrace
public class TracingScript {
/* put your code here */
@TLS private static long start = 0;
@OnMethod(clazz="监测方法所属类的全名", method="方法名")
public static void startExecute(){
start = timeNanos();
}
@OnMethod(clazz="监测方法所属类的全名", method="方法名",
[email protected](Kind.RETURN)
)
public static void end(@Duration long duration){
long end = timeNanos() - start;
println(strcat("time: ", str(end)));
}
}
测试结果:
至此,方法运行时间已经获得,且不用修改代码,对程序运行没有影响。