關於java的JIT知識

  1.JIT的工做原理圖 

工做原理
當JIT編譯啓用時(默認是啓用的),JVM讀入.class文件解釋後,將其發給JIT編譯器。JIT編譯器將字節碼編譯成本機機器代碼。

一般javac將程序源碼編譯,轉換成java字節碼,JVM經過解釋字節碼將其翻譯成相應的機器指令,逐條讀入,逐條解釋翻譯。很是顯然,通過解釋運行,其運行速度一定會比可運行的二進制字節碼程序慢。爲了提升運行速度,引入了JIT技術。

在執行時JIT會把翻譯過的機器碼保存起來,已備下次使用,所以從理論上來講,採用該JIT技術可以,可以接近曾經純編譯技術。

2.相關知識 JIT是just in time,即時編譯技術。使用該技術,能夠加速java程序的運行速度。 JIT並不老是奏效,不能指望JIT必定能夠加速你代碼運行的速度,更糟糕的是她有可能減小代碼的運行速度。這取決於你的代碼結構,固然很是多狀況下咱們仍是能夠如願以償的。 從上面咱們知道了之因此要關閉JITjava.lang.Compiler.disable(); 是因爲加快運行的速度。因爲JIT對每條字節碼都進行編譯,形成了編譯過程負擔太重。爲了不這樣的狀況,當前的JIT僅僅對經常運行的字節碼進行編譯,如循環等
相關文章
相關標籤/搜索