【性能跟踪】btrace学习四--bBTrace example

BTrace应用实例

BTrace Samples

1.跟踪内存信息,用@OnTimer 这个annotation没几秒钟打印一次内存堆栈信息:

import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.OnTimer; import static com.sun.btrace.BTraceUtils.*; @BTrace public class TraceMemory { //heapUsage()/nonHeapUsage() – 打印堆/非堆内存信息,包括init、used、commit、max @OnTimer(4000) public static void printM(){ //打印内存信息 println("heap:"); println(heapUsage()); println("no-heap:"); println(nonHeapUsage()); } }

2.打印下系统信息:

import static com.sun.btrace.BTraceUtils.*; import com.sun.btrace.annotations.BTrace; @BTrace public class TraceJInfo { static{ println("java vm properties:===>"); printVmArguments(); println("System properties:===>"); printProperties(); println("OS properties:===>"); printEnv(); exit(); } }

3.正则表达式,这个匹配的是com.crm.components包下的所有的以Delegate结尾的类的所有的方法

匹配包如:/packae//.package2//..*.*/ 类似

import static com.sun.btrace.BTraceUtils.println; import static com.sun.btrace.BTraceUtils.str; import static com.sun.btrace.BTraceUtils.strcat; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations.BTrace; import com.sun.btrace.annotations.Kind; import com.sun.btrace.annotations.Location; import com.sun.btrace.annotations.OnMethod; import com.sun.btrace.annotations.ProbeClassName; import com.sun.btrace.annotations.ProbeMethodName; import com.sun.btrace.annotations.TLS; @BTrace public class TraceAllDelegate { @TLS private static long startTime = 0; @OnMethod(clazz = "/com//.crm//.components//..*Delegate.*/", method = "/.*/") public static void startMethod(){ startTime = BTraceUtils.timeMillis(); } @OnMethod(clazz = "/com//.crm//.components//..*Delegate.*/", method = "/.*/", location = @Location(Kind.RETURN)) public static void endMethod(){ println(strcat("time taken=>",str(BTraceUtils.timeMillis()-startTime))); println("--------------------------------------"); } @OnMethod(clazz = "/com//.crm//.components//..*Delegate.*/", method = "/.*/", location = @Location(Kind.RETURN)) public static void print(@ProbeClassName String pcn,@ProbeMethodName String pmn) { println(pcn); println(pmn); } }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值