JVM诊断及工具笔记(1)使用arthas热更新代码
现在介绍第一个'短文',使用 arthas 做代码热更新
-
下载 arthas
wget https://arthas.aliyun.com/arthas-boot.jar java -jar arthas-boot.jar
-
启动arthas并选择attach的进程
java -jar arthas-boot.jar
-
反编译某个类文件
>>>jad --source-only org.apache.flink.runtime.jobmaster.slotpool.SlotPoolImpl > /home/flink/code/SlotPoolImpl.java
-
修改/home/flink/code/SlotPoolImpl.java 文件
这个时候就吭哧瘪肚的加日志也好,改代码逻辑也好
-
sc 查找加载 你要装载的类的 classLoaderHash
\>>> sc -d *SlotPoolImpl | grep classLoaderHash
\>>> 18b4aac2
注意 第3,4步反编译不一定好使(部分语法编出来的文件不能用),最好跳过第2,3步把源码在 idea里面修改再拷贝到服务器最为稳妥
-
编译一遍新刚才修改的java文件
mc -c 18b4aac2 /home/flink/code/SlotPoolImpl.java -d /home/flink/code
这个时候就会重新生成 class 文件
/org/apache/flink/runtime/jobmaster/slotpool/SlotPoolImpl.class
-
重新加载这个文件
\>>> redefine /home/flink/code/org/apache/flink/runtime/jobmaster/slotpool/SlotPoolImpl.class
-
作用:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)