首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算方法的字节码大小

计算方法的字节码大小
EN

Stack Overflow用户
提问于 2018-03-12 14:26:36
回答 1查看 723关注 0票数 1

目前,我正在使用ASM库实现自定义软件度量工具。通过这个库计算方法大小的唯一方法是在每次访问指令时人工增量一些大小变量,这在我看来有点不对。还有另一种常用的方法来计算字节码大小吗?还是每次指令大小的计算都是合理的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-12 18:01:47

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

例如,ALOAD_0 (一个字节)、ALOAD  0 (两个字节)和WIDE ALOAD  0 (四个字节)具有相同的含义,并通过visitVarInsn(Opcodes.ALOAD, 0)调用向MethodVisitor报告。然后,在处理此指令时,您不必关心不同的表单,但是您不知道原始类文件中存在哪种表单。

因为ASM没有提供直接处理Code属性的API,所以它不适合这个特定的任务。这个答案包含一个示例,说明如何使用Javassist实现这一目标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49237660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档