标签:
ps -A|grep java
import static com.sun.btrace.BTraceUtils.*; import com.sun.btrace.annotations.*; @BTrace public class TraceObject{ @TLS static long beginTime; @OnMethod( clazz="com.task.CheckTask", method="getItem" ) public static void traceBegin(){ beginTime = timeMillis(); } @OnMethod( clazz="com.task.CheckTask", method="getItem", location=@Location(Kind.RETURN) ) public static void trace(long itemId,@Return Object result){ println("---------start-------------"); println(strcat("itemId:",str(itemId))); println(strcat("result itemName:",str(get(field("com.info.ItemInfoDO","itemIdStr"),result)))); println(strcat(str(sizeof(result)),"bytes")); println(strcat(strcat("execute time is:",str(timeMillis()-beginTime)),"ms")); println("method stack:"); jstack(); println("---------end-------------"); } }
这个脚本主要的作用是监控CheckTask这个类的对象的getItem方法的入参是什么,返回值是什么,返回值占多少个字节(仅仅是该对象占的字节,不包括对象属性指向对象的大小)。以及这个方法的调用堆,以及这个方法的运行时间。
sudo -u admin -H sh btrace 1671 TraceObject.java
标签:
原文地址:http://www.cnblogs.com/niurougan/p/4196031.html