我最近一直在研究JVM字节码,我想知道重构性能关键代码以利用Tload_指令(aload_0、aload_1、aload_2等)而不是两个操作数Tload指令是否会带来明显的性能好处?
这完全属于“你永远不会需要的微优化”的类别,但可以把它看作是学术上的好奇。如果一个方法可以将它的局部变量表保持在7个条目以下,那么有什么性能优势(如果有的话)可以体现出来?我在想,这可能只会导致字节码变得更小。
有关字节码级别优化的阅读材料的高质量链接的加分!
发布于 2013-03-15 09:28:03
出现短负载的主要原因是Java字节码的最初用途。最初,该语言是为机顶盒设计的,并且被设计得尽可能紧凑,因此,为了节省RAM/ROM,人们认为有必要使用常用指令的特殊简短版本。
在解释器中,还有一个微不足道的性能优势,即解释器例程可以通过内置的必要偏移量单独编码。
但是,在JITCed代码中没有区别--所有的操作都将合并到相同的逻辑中,这可能会利用较短的机器指令来实现较短的偏移量,但不会与较短的字节代码处于相同的边界。
https://stackoverflow.com/questions/15423111
复制相似问题