JIT编译器

来源:互联网 发布:加油站经营软件 编辑:程序博客网 时间:2024/04/30 10:01
JIT编译器,英文写作Just-In-Time Compiler,中文意思是即时编译器。

  在Java编程语言和环境中,即时编译器(JIT compiler,just-in-time compiler)是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序。当你写好一个Java程序后,源语言的语句将由Java编译器编译成字节码,而不是编译成与某个特定的处理器硬件平台对应的指令代码(比如,Intel的Pentium微处理器或IBM的System/390处理器)。字节码是可以发送给任何平台并且能在那个平台上运行的独立于平台的代码


分类

  事实上,JIT编译器分成两种:经济编译器和普通编译器,而且它们生来也不是平等的。

经济JIT编译器

  经济JIT编译器代表了运行一个.NET应用程序所需要的最少功能,它直接用对等的本机代码取代每一条MSIL指令,不进行任何优化从而也带来更少的系统负载。这也意味着它主要应用在内存等资源比较紧张的平台上。

普通JIT编译器

  普通JIT编译器则是缺省的运行时配置,它会对其产生的代码进行即时优化。这样做无形中给予了.NET超出传统预编译语言的一个优点:预编译语言只能对其处理的代码将要运行于其上的平台做一番大致的事前估计。
  JIT编译器可以经过准确调节达到当前运行时状态,结果可以完成一些预编译语言无法完成的工作:更高效地利用和分配CPU寄存器。在适当的情况下实施低级代码优化,比如常量重叠、拷贝复制、取消范围检查、取消常规副表达式以及方法内联等
  在代码执行期间监控当前的物理和虚拟内存需求从而更高效地利用内存
  产生特定的平台指令以准确、充分地利用实际的处理器模式
  NET编译的结果就是JIT所带来的额外负载要求并没有产生显著的性能损失。

0 0
原创粉丝点击