【发布时间】:2011-08-08 20:53:08
【问题描述】:
将程序编译为字节码而不是本机代码可以实现一定程度的可移植性,只要存在合适的虚拟机。
但我有点想知道,为什么要延迟编译?为什么不直接在安装应用时编译字节码呢?
如果这样做了,为什么不将其应用于直接编译为本机代码的语言呢?将它们编译成中间格式,使用安装程序分发“JIT”编译器并在目标机器上编译。
我唯一能想到的就是运行时优化。这是安装时唯一无法完成的主要事情。想法?
【问题讨论】:
-
如果您更新虚拟机,您是否必须重新编译所有程序?或者如果您更改任何依赖项,您是否必须解决哪些应用受到影响并重新编译它们?
-
另外,你似乎大大低估了。能够在不编译 20 个可执行文件的情况下利用 CPU 的所有最先进的技巧是很好的,但是如果您在程序中存在未解决的动态性,那么所有这些都对性能没有太大帮助。当需要这样做的所有数据都存在时(在运行时),许多 JIT 的运行时优化可以消除这种动态性。
-
@james:这些确实是有效点。但是对于直接编译为本机代码的语言,它们或多或少是相同的。也许我只是在寻找一种让原生应用更容易跨平台分发的方法。
标签: compilation distribution jit bytecode