gpt4 book ai didi

java - 计算方法的字节码大小

转载 作者:行者123 更新时间:2023-11-30 06:15:46 25 4
gpt4 key购买 nike

目前我正在使用 ASM library 实现自定义软件度量工具。通过此库计算方法大小的唯一方法是 manually increment每次指令访问时都有一些大小变量,这在我看来有些错误。还有另一种计算方法字节码大小的常用方法吗?或者每条指令的大小计算是否足够合理?

最佳答案

手动添加指令大小不适用于 ASM,因为 ASM 专注于处理指令并方便地隐藏不同形式的语义相同的指令。

例如,ALOAD_0(一个字节)、ALOAD  0(两个字节)和 WIDE ALOAD  0(四个字节)都具有相同的含义并通过 visitVarInsn(Opcodes.ALOAD, 0) 报告给 MethodVisitor称呼。那么在处理这条指令时你就不必关心不同的形式,但你不知道原始类文件中存在哪一种。

由于 ASM 没有提供直接处理 Code 属性的 API,因此它不适合此特定任务。 This answer包含如何使用 Javassist 实现此目的的示例。

关于java - 计算方法的字节码大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49237660/

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