在当今的JVM中,Java虚拟机的NOP
操作码有什么实际用途?如果是这样,在哪些情况下会以字节码生成NOP
?
我什至会对看到一个用NOP
编译成字节码的Java代码示例感兴趣。
更新
BCEL的MethodGen类说,
我猜想其他字节码生成库在同一条船上,正如公认的答案所指出的那样。
最佳答案
一些NOP
字节码用例用于class
文件的转换,优化和由Apache BCEL,ASM,FindBugs,PMD,BCEL manual等工具执行的静态分析。Apache false sharing涉及NOP
的某些用途,用于分析和优化。
JVM可以使用NOP
字节码进行JIT优化,以确保处于同步安全点的代码块正确对齐以避免 javac
。
对于使用包含NOP
字节码的JDK class
编译器编译的一些示例代码,这是一个有趣的挑战。但是,我怀疑编译器是否会生成自ojit_a以来包含NOP
字节码的任何the bytecode instruction stream is only single-byte aligned
文件。我很好奇看到这样的例子,但我自己也想不到。
关于java - JVM字节码中的NOP用于什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10422086/