Kev*_*oyd 0 java jvm instruction-set
在Java虚拟机指令集页面提供有关助记符如aaload信息,aastore ...等等.
但是无论这些助记符将占用的CPU周期被提及也没有对这些助记符的字节大小或字大小的任何信息.
知道在哪里可以找到这些信息吗?
如前所述,您寻找的信息不存在,因为它不存在.除了上面提到的不同JVM可以不同地实现指令(或指令组合)的事实之外,单个JVM也可以以不同方式实现它.
这对于intstructions的不同组合(根据它们如何与其他指令一起使用以不同方式实现指令可能更有效)和不同的执行时间都是如此.由于JVM始终控制着程序的执行,它可以(并且确实)监视程序的行为,并决定重新优化经常运行的代码(或代码满足其他一些标准).例如,这可能导致您的指令在执行函数的前1000次被翻译成某组机器指令,并被转换为另一组执行其余的执行.
这种高级优化能力(以及其他)是Java字节代码优化最好留给JVM的原因,也是为什么在某些情况下,Java程序可以比同等的C或C++程序快得多(C和C++通常只有静态优化,而Java是动态优化的.