开发者社区> 问答> 正文

使用 arthas如何辨别耗时最久的步骤?

使用 arthas如何辨别耗时最久的步骤?

展开
收起
Dons 2021-12-06 19:44:43 858 0
来自:Java开发者
1 条回答
写回答
取消 提交回答
  • 先最终待研究的函数的最外层:

    trace com.xxx.service.impl.AServiceImpl refresh

    其中耗时最多的子函数会被标红色

    其中耗时最多的子函数会被标红色

    Affect(class-cnt:2 , method-cnt:2) cost in 525 ms. ---ts=2020-0X-0Y 13:33:18;thread_name=DubboServerHandler-127.0.0.1:20880-thread-36;id=24e;is_daemon=true;priority=5;TCCL=com.mmm.WWWClassLoader@4362d7df---[1761.834357ms] com.xxx.service.impl.AServiceImpl$$EnhancerBySpringCGLIB$$e3cd7543:refresh() +---[0.017066ms] com.xxx.service.impl.AServiceImpl$$EnhancerBySpringCGLIB$$e3cd7543:$jacocoInit() ---[1761.00347ms] org.springframework.cglib.proxy.MethodInterceptor:intercept()---[1757.647111ms] com.xxx.service.impl.AdServiceImpl:refresh() +---[0.006629ms] com.xxx.biz.yyy.service.impl.AServiceImpl:$jacocoInit() +---[0.004073ms] java.util.Collections:singletonList() +---[1709.203302ms] com.yyy.service.impl.AServiceImpl:refreshSomeThings() `---[48.135719ms] com.yzzzz.service.impl.AServiceImpl:createSurvey()

    继续再 trace 耗时最多的子函数。

    trace com.yyy.service.impl.AServiceImpl refreshSomeThings

    最终定位到最影响耗时的函数上,继续往下跟。

    最后发现造成性能瓶颈的函数是一个网络请求,单次请求大概 100多毫秒。

    2021-12-06 19:47:00
    赞同 展开评论 打赏
问答分类:
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~
问答排行榜
最热
最新

相关电子书

更多
Arthas应用诊断利器-新特征介绍 立即下载
使用Arthas 抽丝剥茧深入应用-线上诊断利器之外 立即下载
十分钟上线-使用函数计算构建支付宝小程序服务 立即下载