gpt4 book ai didi

java - 如何在 Byte Buddy 中将 Advice 添加到 "goto"字节码?

转载 作者:行者123 更新时间:2023-11-30 08:33:05 24 4
gpt4 key购买 nike

我正在构建一个需要在 Java 8 Nashorn 中运行第 3 方代码的系统,我想监视/控制 CPU 和内存使用。我有一个 Byte Buddy 代理,它添加了关于 Javascript 方法进入和退出的建议,但是因为循环被编译成字节码,我还需要增加任何向后的 goto 字节码。它目前支持的功能似乎并不简单,但我可以想象它有能力做到这一点。我应该使用它还是自己编写低级 ASM 代码来完成?

最佳答案

我是 Byte Buddy 的开发者,我不打算支持方法内字节码操作之类的东西,原因如下:

为了在方法中操作字节代码,Byte Buddy 公开了其底层的 ASM API,(对我而言)这感觉是处理此类详细编辑的最佳方式。 Advice 组件做了一些假设,例如除了方法的参数之外,还有一个空的操作数栈和局部变量的可覆盖框架。所有这些使得移植 Advice 组件以在方法内触发而不是在方法之前和之后触发变得非常重要。

我考虑添加一些其他组件,以便在某些时候用调度程序调用替换任何方法内方法调用(类似于 Javassists 有限的方法内替换),但在不久的将来不会。

关于java - 如何在 Byte Buddy 中将 Advice 添加到 "goto"字节码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com