博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用BTRACE定位系统中慢的问题
阅读量:7029 次
发布时间:2019-06-28

本文共 1125 字,大约阅读时间需要 3 分钟。

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

 

java 有一个十分有效的动态跟踪工具—btrace 网址:

 

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

 

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.执行效果如下

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

转载于:https://www.cnblogs.com/yg_zhang/p/4221428.html

你可能感兴趣的文章
JavaScript 算法之复杂度分析
查看>>
第六章——函数(inout参数与变异方法)
查看>>
掘金翻译计划月报 — 2018 年 2 月
查看>>
Android属性动画
查看>>
渐进式Express源码学习5-全副武装
查看>>
JVM难学?那是因为你没认真看完这篇文章
查看>>
python面试题(五)
查看>>
老司机 iOS 周报 #40 | 2018-10-22
查看>>
VirtualView iOS 模板加载功能实现详解
查看>>
这可能是最好的性能优化教程(二)
查看>>
被马化腾点赞的微信车票设计,背后有哪些故事?
查看>>
Spring理论基础-面向切面编程
查看>>
BloomFilter 原理,实现及优化
查看>>
PHP本地文件包含漏洞环境搭建与利用
查看>>
OGNL设计及使用不当造成的远程代码执行漏洞
查看>>
Vue-cli + express 构建的SPA Blog(采用前后端分离方案)
查看>>
ios中的多播委托
查看>>
Java基础-单例模式
查看>>
轻仿QQ音乐之音频歌词播放、锁屏歌词
查看>>
MongoDB 4.0 RC 版本强势登陆
查看>>