使用arthas 分析java 应用的一个流程总结
arthas 是阿里巴巴开源的一个java 应用分析利器,但是很多时候我们在碰到一个陌生系统需要进行
性能优化的时候会有好多不知道如何下手的问题,以下是自己的一些实践总结
整体了解系统运行以及框架的
这类还好,我们可以通过项目的代码结构,通过sc 查找相关的类然后通过trace,stack 以及watch ,jad等命令可以分析
同时thread 是一个很不错的命令,可以知道系统的线程情况,一般可以先dashboard 了解系统情况,然后thread,之后
进行trace,stack,以及watch 等操作
对于黑盒系统
优先使用火焰图(profiler),火焰图很不错,对于陌生系统是把利器,可以用来查看系统内部的运行情况(调用链)
有了调用链以及,可以找到的消耗大的方法,我们就可以结合trace 以及watch 分析了,这样就可以方便的找出
有异常的bug或者有异常的请求链路,同时结合jad 进行源码的发编译,查看可能的问题
说明
以上是一个简单的总结,以下是几个常用的命令
trace class method // 查看调用链
watch class method '{params,returnObj}' -x 5 // 查看方法的输入以及输出
thread // 查看线程信息
profiler start // 开启火焰图
dashboard 了解系统当前的整体情况
参考资料
https://arthas.aliyun.com/doc/
https://github.com/alibaba/arthas
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2018-12-17 Benthos metrcis 说明
2017-12-17 arangodb 安装简单试用
2013-12-17 silverlight 中javascript 代码与托管代码的互调用 以及一些思考