开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
一、开篇
Arthas是Alibaba开源的Java诊断工具,日常用这个工具排查很多问题,例如:类冲突问题、接口耗时很长问题、线程池阻塞问题等等,arthas还支持获取堆中对象、执行对象方法、修改对象属性值,真的是有了Arthas便可为所欲为!
当前对它的命令还算比较熟练了,想再进一步了解一下这个神器,学习它的原理和设计。
Arthas用到了JVM Attach API、Java agent、JVMTI、ClassLoader类隔离等技术,后面我们将跟着Arthas源码去探索一下神器是如何巧妙地使用这些手段。
第一篇,将从了解Arthas项目整体结构开始。
二、初探Arthas项目结构
源码工程结构
先从github上clone最新的Arthas源码,地址:github.com/alibaba/art…
从github上看到Arthas源码约74%是Java写的,看到这就放心了,源码理解起来应该不会很费劲。
再将源码导入IDEA,项目结构如下: