首页 > 其他 > 详细

使用BTRACE定位系统中慢的问题

时间:2015-01-13 15:44:33      阅读:325      评论:0      收藏:0      [点我收藏+]

在访问页面请求的时候,如果系统执行效率低,我们怎样才能定位到这些页面请求呢?

 

java 有一个十分有效的动态跟踪工具—btrace 网址:https://kenai.com/projects/btrace/downloads

 

比如希望定位我们的控制器代码哪些方法慢:

 

1.我们可以编写如下类:

 

package demo;

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.TLS;
import static com.sun.btrace.BTraceUtils.*;


@BTrace
public class BtraceTest {
   
    @TLS
    private static long starttime;

   
    @OnMethod(clazz="/com\\.hotent\\..*\\..*\\.controller\\..*/",method="/.+/",location=@Location(Kind.ENTRY))
    public static void startExecute(){
        starttime=timeMillis();
    }
   
    @OnMethod(clazz="/com\\.hotent\\..*\\..*\\.controller\\..*/",method="/.+/",location=@Location(Kind.RETURN))
    public static void endExecute(){
        long timeCost=timeMillis()-starttime;
       
        print(strcat(strcat(name(probeClass()), "."), probeMethod()));
       
        print(strcat(",time taken:" , str(timeCost)));
       
        println("]");
    }
}

 

2.使用jps 查看应用服务器进程。

技术分享

其中8512就是我们的tomcat进程。

 

3.将刚才的代码copy到 btrace 下载目录。

技术分享

 

4.执行命令如下

 

btrace.bat -cp  bulid 8512 demo/BtraceTest.java

5.执行效果如下

访问页面控制台将会打印每个控制器方法的执行时间。

技术分享

使用BTRACE定位系统中慢的问题

原文:http://www.cnblogs.com/yg_zhang/p/4221428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!