记录arthas使用方法

记录arthas使用方法

版本:3.7.2
包:
(没有看到上传的地方,先这么空着吧,网上下载一个也行)

一,如何启动arthas

找到arthas的jar,然后java -jar arthas-boot.jar
如果报错,提示

在这里插入图片描述
则需要指定jdk的安装路径

安装路径有很多中方式,其中一种路径:
打开idea -》 项目结构 -〉sdk

在这里插入图片描述
把jdk home path复制出来,在添加上:/bin

接着在启动项目:(依然是 java -jar)

/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java -jar arthas-boot.jar

二,跟踪方法

trace或watch
注意格式: trace 类全路径 方法名

在成功启动 Arthas 之后,你可以使用 trace 或 watch 命令来查看方法的执行时间。以下是如何使用这些命令的步骤:

使用 trace 命令

trace 命令用于跟踪方法调用,包括方法进入、返回和异常抛出的时间,同时会显示每个执行路径的耗时。

示例:跟踪某个类中的方法执行

bash
复制代码
trace com.example.YourClass yourMethod
com.example.YourClass:替换为你要跟踪的类的完全限定名。
yourMethod:替换为要跟踪的方法名。
这个命令会在控制台中输出该方法的调用细节,包括每次调用的执行时间。

使用 watch 命令

watch 命令用于监控方法的输入参数、返回值和执行时间。

示例:监控方法的返回值和耗时

bash
复制代码
watch com.example.YourClass yourMethod ‘{params, returnObj, #cost}’ -x 3
{params, returnObj, #cost}:定义要输出的表达式,#cost 表示方法执行时间(以毫秒为单位)。
-x 3:表示只显示正常返回的调用,-x 参数表示匹配的范围:
0:所有调用(默认)
1:仅抛出异常的调用
2:仅正常返回的调用
3:仅正常返回且抛出异常的调用
退出 Arthas

当你完成了对方法执行时间的分析,可以通过以下命令退出 Arthas:

bash
复制代码
quit
或者直接按 Ctrl + C。

注意事项

确保目标类和方法在当前运行的 Java 应用程序中存在,并且方法调用频繁,以便观察结果。
trace 和 watch 命令可能会对性能产生影响,因此建议在开发或测试环境中使用。
如果类为内部类或匿名类,确保正确使用其名称进行跟踪。
通过使用这些工具,Arthas 可以帮助你深入了解方法的性能表现,从而更好地优化代码。

### 使用 Arthas 进行 Java 方法执行性能分析 Arthas 是一款强大的 Java 应用诊断工具,在实际应用中,其灵活性和强大功能使其成为 Java 性能监控的利器[^1]。为了进行方法执行性能分析以及故障排查,可以按照如下方式操作: #### 启动目标 Java 应用并连接 Arthas 首先确保目标 Java 应用已经正常启动。之后通过命令行或其他指定的方式启动 Arthas 并连接至该 Java 应用。一旦成功连接上,将会进入 Arthas 控制台界面,在这里可以通过输入不同命令来进行进一步的操作[^3]。 #### 查找感兴趣的类与方法Arthas 提供的交互环境中,使用 `sc` 或者 `sm` 命令可以帮助查找特定名称模式下的类或方法定义。例如要查看某个包下所有的类可以用 `sc com.example.*`;如果想要获取某类中的所有公开方法,则可尝试 `sm com.example.MyClass`。 #### 执行监视 (watch) 对于希望跟踪的具体业务逻辑部分,采用 `watch` 命令能够实时观察参数传递过程及其返回值情况。这有助于理解数据流动路径,并识别潜在瓶颈所在之处。语法结构大致如下所示: ```bash watch com.example.service.UserService getUser '{params,returnObj}' 'true' ``` 此命令表示当 `UserService.getUser()` 被调用时打印出传入参数及最终结果。 #### 记录时间消耗 (trace) 除了关注函数内部行为外,有时也需要关心整个处理链条上的耗时时长分布状况。这时便需要用到 `trace` 功能了——它可以记录每一个被追踪对象在整个生命周期内的各个阶段所花费的时间长度,从而便于发现那些异常缓慢的地方以便优化改进。 ```bash trace com.example.service.OrderService placeOrder ``` 上述指令用于监测 `placeOrder` 函数每次被执行期间各环节所需耗费的实际秒数。 #### 展示系统状态概览(dashboard) 最后值得一提的是 dashboard 指令提供了关于 JVM 和操作系统层面的整体健康度快照视图,这对于全面掌握服务器资源利用率至关重要。特别是面对可能存在的内存泄漏风险时尤为有用[^4]。 ```python # Python 示例无关于此处讨论主题,仅作说明用途保留代码框格式示范 print("本段落意在展示Markdown书写规范而非提供Python编程指导") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值