很多人说起 Arthas,都觉得 Arthas 最大的好处是 类似热部署的功能
有没有大神研究过这个是怎么实现的呢,因为我印象中 jvm 都是有缓存的,如果修改代码
要重新生效的话,需要重启应用。
希望懂的大神不吝赐教一下~
1
senninha 2020-05-27 09:12:43 +08:00 via Android
agent 拿到 Instrument 实例,这个接口有很多方法,其中一个 redefine 就是热更 class 的接口。
|
2
Lighfer 2020-05-27 09:13:52 +08:00
主要还是通过 java agent 相关的 api 实现,Instrumentation.retransformClasses 可以要求对指定的类进行形变,即使是已经被 JVM 加载的类也可以,具体实现形变的类可以通过 Instrumentation.addTransformer 添加
|
3
0x9527 2020-05-27 09:50:12 +08:00 via Android 1
可以看下美图技术团队的这篇文章,说的挺详细的
https://tech.meituan.com/2019/02/28/java-dynamic-trace.html |