是否存在JIT编译器比其他编译器(如C++)更快的情况?
您认为将来JIT编译器只会看到次要的优化,功能但是会遵循类似的性能,还是会有突破性的优势使其无限优于其他编译器?
看起来多核心范式有一些希望,但它不是普遍的魔力.
任何见解?
我认为JIT编译器最终将在编译代码的性能方面击败AOT编译器,因为JIT具有固有的优势(可以使用仅在运行时可用的信息).一个论点是AOT编译器可以花更多时间编译代码,但服务器VM也可能花费大量时间.
我知道JIT确实在某些情况下击败了AOT编译器,但在大多数情况下它们似乎仍然落后.
所以我的问题是,阻止JIT编译器击败AOT编译器的具体而棘手的问题是什么?
编辑:
一些常见的论点:
另一个编辑:
有关具体示例,请参阅此文章:改进Swing性能:JIT与AOT编译.从我从本文中可以收集的内容来看,作者基本上说当没有热点时,运行时信息的优势会降低,因此没有JIT开销的AOT就会获胜.但是40%?这似乎没有多大意义.仅仅是因为这种情况没有调整被比较的JIT编译器吗?还是更基本的东西?
因此,当CLR运行时加载.NET程序集时,它会将其编译为机器本机代码.此过程称为JITing.NGen也是将.NET程序集编译为本机代码的过程.我不明白两者有什么区别?