用阿里Jvm调优工具Arthas解决改了代码不生效你需要认真注意什么?
在Java开发过程中,我们经常会遇到这样的改了代码后,部署到线上,却发现代码并没有生效。这可能是由于多种原因造成的,要定位和解决这个需要大量的调试工作。不过,有了阿里开源的Jvm调优工具Arthas,我们可以轻松解决这个
Arthas是一个功能强大的Java诊断工具,它可以帮助我们快速定位和解决Java程序中的各种包括代码不生效的接下来,我们就来看看如何使用Arthas来解决改了代码不生效的
1. Arthas简介
Arthas是一个开源的Java诊断工具,它支持JDK6+,采用命令行的交互方式。Arthas的主要功能包括:
1. 热加载类:可以在不重启JVM的情况下,重新加载修改后的类文件,非常方便地进行代码调试。
2. 查看类加载信息:可以查看类是从哪个jar包加载的,以及类的加载路径。
3. 查看对象信息:可以查看对象的属性和方法,以及对象的调用栈。
4. 线上问题诊断:可以帮助我们快速定位和解决线上问题的,例如OOM、死锁、死循环等。
2. 安装Arthas
Arthas的安装非常简单,只需要在Github上下载Arthas的jar包,然后将jar包添加到Java的启动参数中即可。具体步骤如下:
1. 下载Arthas的jar包:https://github.com/alibaba/arthas/releases
2. 将jar包添加到Java的启动参数中:
1.javaagent:arthas-boot.jar
3. 使用Arthas定位代码不生效问题
当我们遇到了代码不生效的问题时,可以使用Arthas来定位具体步骤如下:
1. 启动Arthas:使用以下命令启动Arthas:
java -jar arthas-boot.jar
2. 连接到JVM:使用以下命令连接到JVM:
connect
3. 查看类加载信息:使用以下命令查看类是从哪个jar包加载的:
sc -d my.class.name
4. 重新加载类:如果发现类是从非预期的jar包加载的,可以使用以下命令重新加载类:
redefine my.class.name
5. 查看对象信息:如果重新加载类后,代码仍然不生效,可以使用以下命令查看对象信息:
watch -f my.class.name
4. Arthas的常见问题
在使用Arthas的过程中,我们可能会遇到一些常见的下面列出了一些常见的Arthas问题以及相应的解决办法:
.watch命令没有输出:
1. 确保已经正确安装了Arthas。
2. 确保目标类已经被Arthas监控。
3. 检查目标类是否有输出。
.sc命令输出太多:
1. 使用-d参数指定要打印的详细信息级别。
2. 使用-x参数排除不需要输出的类。
一些命令不起作用:
1. 确保已经连接到JVM。
2. 确保目标类已经被Arthas监控。
3. 查看Arthas的日志文件,看是否有任何错误信息。
5. 互动环节
以上就是如何使用Arthas解决改了代码不生效问题的教程。如果你在使用Arthas的过程中遇到了任何欢迎在评论区留言交流。欢迎大家分享自己使用Arthas解决问题的经验和技巧。
添加微信