两种JIT编译器

  事实上,JIT编译器分成两种(经济编译器和普通编译器),而且它们生来也不是平等的。经济JIT编译器代表了运行一个.NET应用程序所需要的最少功能,它直接用对等的本机代码取代每一条MSIL指令,不进行任何优化从而也带来更少的系统负载。这也意味着它主要应用在内存等资源比较紧张的平台上。
  
  另一方面,普通JIT编译器则是缺省的运行时配置,它会对其产生的代码进行即时优化。这样做无形中给予了.NET超出传统预编译语言的一个优点:预编译语言只能对其处理的代码将要运行于其上的平台做一番大致的事前估计。JIT编译器可以经过准确调节达到当前运行时状态,结果可以完成一些预编译语言无法完成的工作:
  
  更高效地利用和分配CPU寄存器
  在适当的情况下实施低级代码优化,比如常量重叠、拷贝复制、取消范围检查、取消常规副表达式以及方法内联等
  在代码执行期间监控当前的物理和虚拟内存需求从而更高效地利用内存
  产生特定的平台指令以准确、充分地利用实际的处理器模式
  
  .NET编译的结果就是JIT所带来的额外负载要求并没有产生显著的性能损失。 
posted @ 2007-10-02 10:55  包建强  Views(1991)  Comments(2Edit  收藏  举报