iload #index的方式与其他3个字节代码不同。两者之间是否有任何性能差异。
2 回答
UYOU
TA贡献1878条经验 获得超4个赞
iload #index的方式与其他3个字节代码不同。
iload_1 _2 _3使用一个字节的字节码。另一种形式使用2。
两者之间是否有任何性能差异。
仅间接地。在大多数情况下,它没有什么区别,但是有些性能调整指标是基于字节码字节数的。例如是否内联方法。稍长的方法可能意味着未执行某些优化。
例如,即使不经常调用,用于内联方法的度量标准也为35个字节。如果代码使用的是iload#而不是iload_1,则可能意味着它的长度略大于35个字节,而不是略少且没有内联。
慕容708150
TA贡献1831条经验 获得超4个赞
启动新线程时,JVM为该线程创建新堆栈,并且当线程调用Java方法时,虚拟机将创建一个新框架并将其推送到该线程的Java堆栈上。堆栈帧由三部分组成:局部变量,操作数堆栈,帧数据。
局部变量被组织为从零开始的单词数组。
这些iload_1,iload_2,iload_3是局部变量数组的入口级别。因此,iload_1表示引用局部变量数组的第一个索引。类似地,iload_2和iload_3分别表示引用局部变量数组的第二和第三索引。
因此,在这些iload_1,iload_2和iload_3中没有特定的区别,而是引用局部变量数组中的相应索引。
添加回答
举报
0/150
提交
取消