如何分析一下自己的web项目的性能消耗,一般我们会在开始与结束加时间相减打印出消耗时间。这种方法侵入率太高了,如果想利用arthas整体调优一下自己web项目的性能点的话,可以使用以下的步骤或思路。(当然xrebel也是一个不错的选择)
step1:从入口跟踪
针对web项目,可以跟踪servlet类。DispatcherServlet是整个程序的入口。
trace org.springframework.web.servlet.DispatcherServlet *
输入命令后,再在浏览器访问你的web应用,就会输出相应的信息,可以看到输入代码各类方法的耗时。也会有红包标出占比最大的方法。
根据结果我们可以进一步的跟踪,继续使用trace命令
trace org.springframework.web.servlet.DispatcherServlet doDispatch
一步步的跟踪最后会定位到业务controller、service、dao各层。
step3:模拟请求
当定位到具体的业务方法后,就可以使用tt命令查看方法调用上下文信息
tt -t com.wdbyte.arthas.service.UserServiceImpl mysql
通过tt -t 查看到index,然后通过index重复调用。也就是你不用从页面去触发这个方法的调用这样太耗时耗力了,可以通过tt直接来触发请求。
tt -i 1001 -p
- 最后通过tt -i 与 trace重复配合,定位出性能消耗
==============================================
如果文章对你有帮助,不要忘记加个关注、点个赞!