Pat*_*ins 2 java jvm bytecode
关注这个问题:Java方法有64kb字节码限制.
这为编译器带来了什么好处?GCC很乐意编译多兆字节的C方法 - 这个设计决策背后的原因是什么?正如这个问题所建议的那样,只是限制糟糕的编程实践,因为64kb方法是巨大的吗?或者是否有一些特定的好处,限制是64kb而不是其他一些数字?
Ing*_*gel 8
方法字节码中的偏移量为2个字节长(在类文件格式规范中称为"u2").可用u2表示的最大偏移量为64kB.
偏移量出现在实际指令中,例如if*字节码,后跟两个包含分支偏移量增量的字节.此外,其他类文件属性,如StackMapTable,LocalVariableTable,Exceptions和其他含有偏移成字节码.
if*
StackMapTable
LocalVariableTable
Exceptions
如果偏移是u4,那么方法可能会更长,但所有类文件也会更大.这是一种权衡.
归档时间:
11 年,11 月 前
查看次数:
747 次
最近记录: