开发者社区 > 云原生 > 微服务 > 正文

Arthas中watch和trace这种修改字节码的指令,是否会导致JIT逆优化为字节码执行?

Arthas中watch和trace这种修改字节码的指令,是否会导致JIT逆优化为字节码执行?

展开
收起
三分钟热度的鱼 2024-02-28 14:58:29 65 0
2 条回答
写回答
取消 提交回答
  • 搞笑前端工程师

    作为阿里云的资深开发工程师,我可以告诉您,Arthas 这个 Java 诊断工具使用字节码技术来监控和诊断线上运行的 Java 应用程序。Arthas 的 watchtrace 命令确实会修改字节码,但是这种修改通常是很小范围的,并且是针对性的。

    JIT(即时编译)是 Java 虚拟机(JVM)的一个特性,它会将热点代码(经常执行的代码)编译成本地机器码以提高性能。逆优化(Deoptimization)是指 JVM 将已经编译成本地机器码的代码重新编译回字节码的过程。逆优化通常在代码行为与预期不符时发生,例如,当代码进入了一个不经常执行的路径时。

    使用 Arthas 的 watchtrace 命令修改字节码,通常不会导致 JIT 逆优化为字节码执行。这是因为 Arthas 修改的字节码范围相对较小,并且这些修改主要是为了监控和诊断目的,而不是改变代码的行为。然而,如果 Arthas 修改的字节码导致代码行为发生显著变化,或者在某些特定情况下触发了 JVM 的逆优化机制,那么可能会发生逆优化。

    总之,虽然 Arthas 修改字节码,但在大多数情况下,这不会导致 JIT 逆优化为字节码执行。然而,如果您在使用 Arthas 时遇到了性能问题,建议您仔细检查代码和 JVM 配置,以确保没有其他原因导致性能下降。

    2024-04-10 19:04:23
    赞同 展开评论 打赏
  • 会的,看 faq。此回答整理自钉群“Arthas开源交流群”

    2024-02-28 15:13:57
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
Arthas应用诊断利器-新特征介绍 立即下载
使用Arthas 抽丝剥茧深入应用-线上诊断利器之外 立即下载
workshop专场--容器、消息&IoT专场-开发者动手实践营-容器、消息和IoT-Java诊断利器Arthas排查问题实践 立即下载