效率工具之Arthas

Arthas

阿里巴巴开源的Java诊断工具;追踪方法执行链、反编译、监控JVM状态

在线安装

使用

1. trace 跟踪调用链

解决痛点:定位问题根据日志推理分析,方法出入参不可见,分支判断太多情况下 定位很慢,分析出可能有问题的点还要多次验证才能确认问题点。使用trace 一行命令即可获取方法执行链,对照代码稍加分析即可准确定位问题。

trace 类全限定名 方法名 [-n 1]
# 类全限定名获取参照下图2

效果展示:打印方法执行链,快速确定分支及执行逻辑
在这里插入图片描述

tips:IDEA获取方法全限定名
在这里插入图片描述

2. watch 查看方法出入参

解决痛点:很多时候某个方法出入参没有打印,阻塞问题定位,需要添加日志查看出入参或者验证出入参是否预期值 -> 再推包部署 -> 验证完之后再删除日志 -> 重新提交代码。使用Arthas一行命令即可,避免阻塞及推包部署过程的麻烦,极大提升效率。

watch 类全限定名 方法名 '{params,returnObj}' -x 4
  • 还可以根据指定参数过滤请求
# 观察用户ID为9的请求
watch 类全限定名 getUser "{params,returnObj}" "params[1]==9" -x 2

getUser方法如下
private User getuser(String name, Integer id){

}

3. jad 反编译

解决痛点:修改的代码没有生效,不知道是逻辑问题还是修改的代码没有部署成功的时候,可以通过jad 反编译快速验证。
在这里插入图片描述

在线安装

# 1. 下载 (内网使用离线安装)
curl -O "https://alibaba.github.io/arthas/arthas-boot.jar"
# 位置: /root/.arthas/lib/3.6.7/arthas

# 2.检测java进程 (需要与目标进程启动用户相同) 
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
# --repo-mirror aliyun --use-http 使用阿里镜像(提速)
# 首次选择会下载依赖,并进入arthas

启动成功
在这里插入图片描述

更多

JVM监控等更多使用见官网介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Arthas 是一款面向 Java 应用的开发工具,旨在帮助开发人员更好地理解和调试 Java 应用程序的运行状态。它的功能非常丰富,可以帮助开发人员解决许多常见的问题,例如应用程序性能问题、内存泄漏、线程问题、类加载问题等等。 下面是 Arthas 的一些常用使用技巧: 1. 安装和启动 Arthas 首先,我们需要在本地安装 Arthas。安装方法可以参考 Arthas 的官方文档。安装完成后,我们就可以使用 Arthas 连接到正在运行的 Java 应用程序了。 2. 查看应用程序的基本信息 使用 Arthas 可以查看应用程序的基本信息,例如类加载器、系统属性、线程信息等。使用命令 `system` 可以查看这些信息。 3. 查看应用程序的方法调用链 使用 Arthas 可以查看应用程序的方法调用链,即方法的调用关系。使用命令 `trace` 可以查看方法调用链。 4. 查看方法的执行时间 使用 Arthas 可以查看方法的执行时间,即方法的平均执行时间、最大执行时间、最小执行时间等。使用命令 `tt` 可以 ### 回答2: Arthas 是一个强大的Java开发工具,可以帮助开发人员在调试和诊断Java应用程序过程中提供便利。下面我将用300字回答如何使用Arthas。 首先,安装Arthas是必需的。可以通过在终端窗口中运行命令来安装Arthas: curl -L https://alibaba.github.io/arthas/install.sh | sh 一旦安装了Arthas,就可以通过运行arthas命令来启动Arthas控制台。Arthas的控制台提供了许多命令和选项来帮助开发人员调试和诊断Java应用程序。 其中一个非常有用的功能是监视方法的调用。可以使用如下命令来监视方法的调用: watch com.example.demo.DemoClass demoMethod "{params, returnObj}" 上述命令将监视com.example.demo.DemoClass类中的demoMethod方法,并打印方法的参数和返回值。 另一个有用的功能是查看方法的代码。可以使用如下命令来查看方法的代码: jad com.example.demo.DemoClass demoMethod 上述命令将显示com.example.demo.DemoClass类中的demoMethod方法的源代码。 Arthas还提供了一些其他功能,如查看线程堆栈、监视HTTP请求、查看类加载器信息等。我们可以使用help命令来查看所有可用的命令和选项。 Arthas还支持在生产环境中远程调试Java应用程序。可以使用如下命令远程连接到应用程序: arthas-boot.jar -c com.example.demo.App --address 127.0.0.1:8080 上述命令将连接到运行在127.0.0.1:8080上的com.example.demo.App应用程序。 总之,Arthas是一个功能强大的开发工具,可以帮助开发人员在调试和诊断Java应用程序过程中提供便利。通过监视方法调用查看方法代码以及其他各种功能,开发人员可以更快地定位和解决问题。Arthas还支持在生产环境中进行远程调试,为开发人员提供了更多的灵活性和便利性。 ### 回答3: Arthas是一款开发工具,用于Java应用程序的故障排查和性能优化。它为开发者提供了丰富的命令行工具和可视化界面,帮助他们更轻松地分析和调试应用程序。下面是一些使用Arthas的技巧: 1. 熟悉Arthas命令行工具Arthas提供了大量的命令,用于监控和调试Java应用程序。通过掌握并熟练使用这些命令,开发者可以更有效地分析和解决问题。 2. 实时监控应用程序:Arthas可以监控应用程序的各个方面,包括类加载、方法调用、线程状态等。通过查看实时监控数据,开发者可以了解应用程序的运行状况,并及时发现和解决问题。 3. 进行方法拦截和修改:Arthas提供了方法拦截和修改的功能,可以在运行时动态地拦截和修改Java方法。这个功能非常有用,可以帮助开发者在不修改原始代码的情况下进行调试和测试。 4. 使用断点进行调试:Arthas支持断点功能,开发者可以在应用程序中设置断点,并通过调试命令查看断点处的变量和调用栈信息。这对于定位问题和调试复杂的应用程序非常有帮助。 5. 进行性能分析和优化:Arthas可以进行性能分析和优化,开发者可以通过查看应用程序中的热点方法和对象分配情况,找到性能瓶颈,并进行相应的优化。 总结来说,Arthas是一款功能强大的Java开发工具,它可以帮助开发者更轻松地分析和调试应用程序,提高开发效率。通过熟练掌握Arthas的使用技巧,开发者可以更快速地解决问题,并优化应用程序的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值