关于java的JIT知识
生活随笔
收集整理的這篇文章主要介紹了
关于java的JIT知识
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.JIT的工作原理圖?
工作原理
當JIT編譯啟用時(默認是啟用的),JVM讀入.class文件解釋后,將其發(fā)給JIT編譯器。JIT編譯器將字節(jié)碼編譯成本機機器代碼。
通常javac將程序源碼編譯,轉換成java字節(jié)碼,JVM通過解釋字節(jié)碼將其翻譯成相應的機器指令,逐條讀入,逐條解釋翻譯。非常顯然,經(jīng)過解釋運行,其運行速度必定會比可運行的二進制字節(jié)碼程序慢。為了提高運行速度,引入了JIT技術。
在執(zhí)行時JIT會把翻譯過的機器碼保存起來,已備下次使用,因此從理論上來說,採用該JIT技術能夠,能夠接近曾經(jīng)純編譯技術。
2.相關知識
JIT是just in time,即時編譯技術。使用該技術,可以加速java程序的運行速度。
JIT并不總是奏效,不能期望JIT一定可以加速你代碼運行的速度,更糟糕的是她有可能減少代碼的運行速度。這取決于你的代碼結構,當然非常多情況下我們還是可以如愿以償?shù)摹?
從上面我們知道了之所以要關閉JITjava.lang.Compiler.disable(); 是由于加快運行的速度。由于JIT對每條字節(jié)碼都進行編譯,造成了編譯過程負擔過重。為了避免這樣的情況,當前的JIT僅僅對常常運行的字節(jié)碼進行編譯,如循環(huán)等
工作原理
當JIT編譯啟用時(默認是啟用的),JVM讀入.class文件解釋后,將其發(fā)給JIT編譯器。JIT編譯器將字節(jié)碼編譯成本機機器代碼。
通常javac將程序源碼編譯,轉換成java字節(jié)碼,JVM通過解釋字節(jié)碼將其翻譯成相應的機器指令,逐條讀入,逐條解釋翻譯。非常顯然,經(jīng)過解釋運行,其運行速度必定會比可運行的二進制字節(jié)碼程序慢。為了提高運行速度,引入了JIT技術。
在執(zhí)行時JIT會把翻譯過的機器碼保存起來,已備下次使用,因此從理論上來說,採用該JIT技術能夠,能夠接近曾經(jīng)純編譯技術。
2.相關知識
JIT是just in time,即時編譯技術。使用該技術,可以加速java程序的運行速度。
JIT并不總是奏效,不能期望JIT一定可以加速你代碼運行的速度,更糟糕的是她有可能減少代碼的運行速度。這取決于你的代碼結構,當然非常多情況下我們還是可以如愿以償?shù)摹?
從上面我們知道了之所以要關閉JITjava.lang.Compiler.disable(); 是由于加快運行的速度。由于JIT對每條字節(jié)碼都進行編譯,造成了編譯過程負擔過重。為了避免這樣的情況,當前的JIT僅僅對常常運行的字節(jié)碼進行編譯,如循環(huán)等
轉載于:https://www.cnblogs.com/zfyouxi/p/4184399.html
總結
以上是生活随笔為你收集整理的关于java的JIT知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014-12
- 下一篇: 44-当日交易总结。(2014.12.3