1. 程式人生 > >Java虛擬機器解釋執行和JIT的關係

Java虛擬機器解釋執行和JIT的關係

 Java程式最初是僅僅通過直譯器解釋執行的,即對位元組碼逐條解釋執行,這種方式的執行速度相對會比較慢,尤其當某個方法或程式碼塊執行的特別頻繁時,這種方式的執行效率就顯得很低。於是後來在虛擬機器中引入了JIT編譯器(即時編譯器)當虛擬機發現某個方法或程式碼塊執行特別頻繁時,就會把這些程式碼認定為“Hot Spot Code”(熱點程式碼),為了提高熱點程式碼的執行效率,在執行時,虛擬機器將會把這些程式碼編譯成與本地平臺相關的機器碼,並進行各層次的優化,完成這項任務的正是JIT編譯器。

二者各有優勢:當程式需要迅速啟動和執行時,直譯器可以首先發揮作用,省去編譯的時間,立即執行;當程式執行後,隨著時間的推移,編譯器逐漸會返回作用,把越來越多的程式碼編譯成原生代碼後,可以獲取更高的執行效率。解釋執行可以節約記憶體,而編譯執行可以提升效率。


摘抄自:http://blog.csdn.net/ns_code/article/details/18009455