在Java程式語言和環境中,即時編譯器(JIT compiler,just-in-timecompiler)是一個把Java的位元組碼(包括需要被解釋的指令的程式)轉換成可以直接傳送給處理器(processor)的指令的程式。當你寫好一個Java程式後,源語言的語句將由Java前端編譯器(javac或者Eclipse JDT中的增量式編譯器)編譯成位元組碼,而不是編譯成與某個特定的處理器硬體平台對應的本地指令代碼(比如,Intel的Pentium微處理器或IBM的System/390處理器)。位元組碼是可以傳送給任何平台並且能在那個平台上運行的獨立於平台的代碼。
過去,大多數用任何語言寫的程式在每個電腦平台上都必須重編譯,甚至有時需要重寫。Java最大的優點之一就是你只需要寫和編譯一次程式。在任何平台上,Java都會將編譯好的位元組碼解釋成能被特定的處理器所理解的指令(即一次編譯,到處運行)。儘管如此,Java虛擬機一次只能處理一條位元組碼指令。在特定的系統平台上使用Java即時編譯器(包括C1,C2 兩個即時編譯器)能把位元組碼編譯成特定系統的代碼(雖然這個程式最初已經在這個平台上被編譯過)。一旦代碼被JIT編譯器(重)編譯後,它在電腦上通常就會運行地更快。
即時編譯器(JIT compiler)隨虛擬機一起供給的,並可選使用。它把位元組碼編譯成可立即執行的指定平台的可執行代碼。Sun微系統建議,選擇JIT編譯器選項通常會使程式運行地更快,尤其是當某個可執行的方法被重複使用時。
相關詞條
-
JIT編譯器
JIT編譯器,英文寫作Just-In-Time Compiler,中文意思是即時編譯器。JIT是一種提高程式運行效率的方法。通常,程式有兩種運行方式:靜...
介紹 分類 -
缺陷編譯器
遊戲王卡片之一。動畫《遊戲王VRAINS》主角藤木游作使用的卡片。「CIRCUIT BREAK(CIBR/1002)」收錄的效果怪獸。
卡片信息 調整信息 原作信息 -
編譯並執行
本地編譯器還是交叉編譯器。 即時編譯即時編譯(英語...一句一句邊運行邊翻譯。即時編譯器則混合了這二者,一句一句編譯原始碼,但是...可以處理延遲綁定並增強安全性。即時編譯器有兩種類型,一是位元組碼翻譯,二是...
編譯器 歷史 編譯器輸出 即時編譯 參見 -
freebsd packages
。[email protected]即時衛星追蹤和軌道運行...
一個package的安裝 軟體包的管理 -
及時編譯程式
。即時編譯器即時編譯器混合了這二者,一句一句編譯原始碼,但是會將翻譯過...綁定並增強安全性。即時編譯器有兩種類型,一是位元組碼翻譯,二是動態編譯翻譯...,才會編譯為本地代碼。運行過程中會被即時編譯器編譯的“熱點代碼”有兩類:1...
概述 即時編譯器 對比 JVM運行原理 編譯的時間開銷 -
Csharp
.當然,這一點還需要得到事實證明,因為C#和其他生成MSIL的編譯器還沒有發布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對....作為語言的一部分存在意味著編譯器有可能使用它--無論何時你在程式中寫入...
C#簡介 C#從java繼承而來的特點 C#從C和C++繼承的特點 C#獨有的特點 -
volatile
作用簡單地說就是防止編譯器對代碼進行最佳化。比如如下程式:對外部硬體而言,上述四條語句分別表示不同的操作,會產生四種不同的動作,但是編譯器卻會...語句,只產生一條機器代碼)。如果鍵入 volatile,則編譯器會逐一地...
作用 例子 使用地方 代碼 正確使用 -
實時編譯
行前全部被翻譯為機器碼,而解釋執行的則是一句一句邊運行邊翻譯。即時編譯器...損耗。相對於靜態編譯代碼,即時編譯的代碼可以處理延遲綁定並增強安全性。類型即時編譯器有兩種類型,一是位元組碼翻譯,二是動態編譯翻譯。微軟的.NET...
簡介 類型 動態編譯 編譯器 -
CLR
的“代”的對象,而不是回收堆中的所有對象。(6)即時編譯在各種語言的編譯器...的。這就是JIT編譯器需要完成的工作。這裡需要說明一個問題:為什麼要即時編譯...功能通過編譯器與其他工具共同展現。依靠一種以運行時為目標的編譯器開發的代碼...
基本信息 集成能力 記憶體管理 版本發布 彙編指令