JIT編譯器

JIT編譯器

動态編譯器
JIT編譯器,英文寫作Just-In-TimeCompiler,中文意思是即時編譯器。JIT編譯器的工作是通過使用熱代碼段來提高性能,當編譯器執行之前執行的代碼時,它假定類型相同并且使用已生成的優化代碼,但是如果類型不同,則JIT會執行去優化并正常地編譯代碼。[1]JIT編譯器是“動态編譯器”的一種,相對的“靜态編譯器”則是指的比如:C/C++的編譯器。
  • 中文名:JIT編譯器
  • 外文名:Just-In-Time Compiler
  • 用途:
  • 含義:即時編譯器
  • 作用:使程序跨平台運行

簡介

在Java編程語言和環境中,即時編譯器(JITcompiler,just-in-timecompiler)是一個把Java的字節碼(包括需要被解釋的指令的程序)轉換成可以直接發送給處理器的指令的程序。當寫好一個Java程序後,源語言的語句将由Java編譯器編譯成字節碼,而不是編譯成與某個特定的處理器硬件平台對應的指令代碼(比如,Intel的Pentium微處理器或IBM的System/390處理器)。字節碼是可以發送給任何平台并且能在那個平台上運行的獨立于平台的代碼。

分類

事實上,JIT編譯器分成兩種:經濟編譯器和普通編譯器。

經濟JIT編譯器

經濟JIT編譯器代表了運行一個NET應用程序所需要的最少功能,它直接用對等的本機代碼取代每一條MSIL指令,不進行任何優化從而也帶來更少的系統負載。這也意味着它主要應用在内存等資源比較緊張的平台上。

普通JIT編譯器

普通JIT編譯器則是缺省的運行時配置,會對其産生的代碼進行即時優化。這樣做無形中給予了。NET超出傳統預編譯語言的一個優點:預編譯語言隻能對其處理的代碼将要運行于其上的平台做一番大緻的事前估計。

JIT編譯器可以經過準确調節達到當前運行時狀态,結果可以完成一些預編譯語言無法完成的工作:更高效地利用和分配CPU寄存器。在适當的情況下實施低級代碼優化,比如常量重疊、拷貝複制、取消範圍檢查、取消常規副表達式以及方法内聯等。

相關詞條

相關搜索

其它詞條