虽然所有 Java 字节码都是 1 字节宽,但有时也存在可变大小的常量,其范围可以从 1 字节到 8 字节。 java 如何有效地获取这些操作数大于一字节的指令,因为这种数据访问是未对齐的。最后,java 虚拟机如何在不支持未对齐数据访问的平台(例如 ARM、Alpha)上执行此操作?
最佳答案
这无法有效地完成。解决方案是(您可能知道):
- 微汇编器(如果可行)(不是 ARM),对 CPU 重新编程;
- 加载时间转换:更好、更快的解释字节码(不太可能);
- 加载时间转换:简单的编译;
- 延长即时编译;
- 预编译。
请注意,字节代码的解释开销并不比字代码高很多,特别是解释周期本身的开销最大。
尽管如此,我还是在旧处理器上做了一些工作,使用可定制的可优化解释器,这很有帮助。
可能会提到 GNU java 编译器。
关于java - Java 如何高效地解释大于 1 字节、未对齐的字节码常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009417/