Java如何解释字节大于一个字节的常量,有效地未对齐?

时间:2014-06-03 07:29:33

标签: java jvm vm-implementation

虽然所有java字节代码都是1字节宽,但在点处有可变大小的常量,其范围可以是1字节到8字节。 java如何有效地获取大于一个字节的操作数的这些指令,因为这种数据访问将是未对齐的。最后,java虚拟机如何在不支持未对齐数据访问的平台(ex ARM,Alpha)上执行此操作?

1 个答案:

答案 0 :(得分:1)

无法有效地完成。解决方案(您可能会注意到):

  • 微装配器,如果可行(不是ARM),重新编程CPU;
  • 加载时间转换:更好,更快的解释字节码(不太可能);
  • 加载时间转换:简单的编译;
  • 扩展即时编译;
  • 预编译。

请注意,字节代码的解释开销并不比字代码高很多,特别是因为解释周期本身具有最大的开销。

然而,我在较旧的处理器上做了一些工作,可以使用可定制的优化解释器,并且帮助了它。

可能会提到GNU java commpiler。