iload_1,iload_2,iload_3和iload #index字节码有什么区别?

iload #index的方式与其他3个字节代码不同。两者之间是否有任何性能差异。


眼眸繁星
浏览 579回答 2
2回答

UYOU

iload #index的方式与其他3个字节代码不同。iload_1 _2 _3使用一个字节的字节码。另一种形式使用2。两者之间是否有任何性能差异。仅间接地。在大多数情况下,它没有什么区别,但是有些性能调整指标是基于字节码字节数的。例如是否内联方法。稍长的方法可能意味着未执行某些优化。例如,即使不经常调用,用于内联方法的度量标准也为35个字节。如果代码使用的是iload#而不是iload_1,则可能意味着它的长度略大于35个字节,而不是略少且没有内联。

慕容708150

启动新线程时,JVM为该线程创建新堆栈,并且当线程调用Java方法时,虚拟机将创建一个新框架并将其推送到该线程的Java堆栈上。堆栈帧由三部分组成:局部变量,操作数堆栈,帧数据。局部变量被组织为从零开始的单词数组。这些iload_1,iload_2,iload_3是局部变量数组的入口级别。因此,iload_1表示引用局部变量数组的第一个索引。类似地,iload_2和iload_3分别表示引用局部变量数组的第二和第三索引。因此,在这些iload_1,iload_2和iload_3中没有特定的区别,而是引用局部变量数组中的相应索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java