我想知道 JVM 的用途。如果创建 JVM 是为了允许平台无关的可执行代码,那么能够生成平台无关的可执行代码的交叉编译器就不能取代 JVM 吗?
有关交叉编译器的信息检索自:http://en.wikipedia.org/wiki/Cross_compiler
字节码格式和 JVM 的优点是能够根据实际运行期间获取的分析数据在运行时优化代码。换句话说,没有静态编译的本机代码是win.
运行时编译的优点的一个特别有趣的例子是单态调用点:对于代码中调用实例方法的每个位置,运行时都会准确跟踪调用该方法的对象类型。在很多情况下,事实证明只涉及一种对象类型,如果它是静态方法(无静态方法),JVM 将编译该调用。vtables涉及)。这将进一步使其能够inline调用,然后进行更多优化,例如转义分析、寄存器分配、常量折叠等等。
事实上,你的批评可能(有人说,should)被颠倒了:为什么Java要定义字节码,修复许多本来可以留给实现的设计决策?现代趋势是分布源代码并让 JIT 编译器处理它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)