及时编译具有许多理论上的优势:它有关于机器,标志状态以及代码使用方式的更多信息.它允许您在运行之前避免耗时的编译,从而加快开发周期.
简单地说,JIT编译似乎是一种优越的方法; 有一些开销,但如果足够智能它可以加快你的代码足以抵消它.
但是,我不认为这就是整个故事.理论和实践的缺点是什么?是的,经常会提到"较慢的启动时间","增加的内存消耗",但我想知道是否还有更多.
例如,跟踪和JIT编译会丢弃cpu缓存吗?如果你的程序很大并且并没有真正有很多特别热门的路径,那么是否存在花费更多时间跟踪和JIT-ting的风险?
似乎有人写了一篇论文或解决JIT中固有的问题.如果有人测量,那就更好了.
编辑:我正在谈论Just In Time编译与提前编译(可能是反馈导向优化)相比较,而不是与解释相比.