1. 程式人生 > >JVM中的JIT

JVM中的JIT

java 但是 情況 tle itl java虛擬機 一個 進行 mil

JVM中的JIT


介紹Java虛擬機的文章或者書籍總會提到Java虛擬機中的JIT編譯器,可是JIT編譯器到底是什麽?為什麽需要JIT編譯呢?


JIT編譯器,是Just In Time編譯的意思,又稱即時編譯。 Java程序是先從源代碼編譯到字節碼,然後由Java虛擬機來解釋執行字節碼。當Java虛擬機在解釋執行一個Java程序的字節碼的時候,正常情況下Java虛擬機是解釋一句執行一句,直到程序運行完畢。但是,很多程序中都存在一些”熱點“區域,這些區域的代碼會被反復調用執行,這樣同一段代碼就會被Java虛擬機反復的解釋,這就導致了Java虛擬機執行效率的低下。為了應對這種情況,Java虛擬機就在執行Java字節碼的過程中把檢測到的反復執行的”熱點“區域代碼給編譯成機器碼,讓後邊對這段代碼的調用可以不用再解釋,提高執行效率,這個編譯過程就叫JIT編譯,因為編譯是在字節碼解釋執行的過程中完成的,所以被稱即時編譯。
Java虛擬機在執行Java字節碼的過程中不會對所有的字節碼進行即時編譯,因為只執行一次的字節碼沒必要編譯成機器碼,直接解釋執行比即時編譯還快。

JVM中的JIT