java的JIT 工作原理簡單介紹
1.JIT的工作原理圖
工作原理
當(dāng)JIT編譯啟用時(shí)(默認(rèn)是啟用的),JVM讀入.class文件解釋后,將其發(fā)給JIT編譯器。JIT編譯器將字節(jié)碼編譯成本機(jī)機(jī)器代碼。
通常javac將程序源代碼編譯,轉(zhuǎn)換成java字節(jié)碼,JVM通過解釋字節(jié)碼將其翻譯成對(duì)應(yīng)的機(jī)器指令,逐條讀入,逐條解釋翻譯。很顯然,經(jīng)過解釋執(zhí)行,其執(zhí)行速度必然會(huì)比可執(zhí)行的二進(jìn)制字節(jié)碼程序慢。為了提高執(zhí)行速度,引入了JIT技術(shù)。
在運(yùn)行時(shí)JIT會(huì)把翻譯過的機(jī)器碼保存起來,已備下次使用,因此從理論上來說,采用該JIT技術(shù)可以,可以接近以前純編譯技術(shù)。
2.相關(guān)知識(shí)
JIT是just in time,即時(shí)編譯技術(shù)。使用該技術(shù),能夠加速java程序的執(zhí)行速度。
JIT并不總是奏效,不能期望JIT一定能夠加速你代碼執(zhí)行的速度,更糟糕的是她有可能降低代碼的執(zhí)行速度。這取決于你的代碼結(jié)構(gòu),當(dāng)然很多情況下我們還是能夠如愿以償?shù)摹?/p>
從上面我們知道了之所以要關(guān)閉JITjava.lang.Compiler.disable(); 是因?yàn)榧涌靾?zhí)行的速度。由于JIT對(duì)每條字節(jié)碼都進(jìn)行編譯,造成了編譯過程負(fù)擔(dān)過重。為了避免這種情況,當(dāng)前的JIT只對(duì)經(jīng)常執(zhí)行的字節(jié)碼進(jìn)行編譯,如循環(huán)等.
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
java 實(shí)現(xiàn)當(dāng)前時(shí)間加減30分鐘的時(shí)間代碼
這篇文章主要介紹了java 實(shí)現(xiàn)當(dāng)前時(shí)間加減30分鐘的時(shí)間代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08RocketMQ?NameServer架構(gòu)設(shè)計(jì)啟動(dòng)流程
這篇文章主要為大家介紹了RocketMQ?NameServer架構(gòu)設(shè)計(jì)啟動(dòng)流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Java Web項(xiàng)目中編寫定時(shí)任務(wù)的實(shí)現(xiàn)
本篇文章主要介紹了Java Web項(xiàng)目中編寫定時(shí)任務(wù)的實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01Linux(centos7)安裝jdk1.8的詳細(xì)步驟
Linux的使用相信大家都要用到j(luò)ava吧,在使用java前我們得先安裝jdk以及配置環(huán)境變量等工作,下面這篇文章主要給大家介紹了關(guān)于Linux(centos7)安裝jdk1.8的詳細(xì)步驟,需要的朋友可以參考下2023-10-10解決java啟動(dòng)時(shí)報(bào)線程占用報(bào)錯(cuò):Exception?in?thread?“Thread-14“?java.ne
這篇文章主要給大家介紹了關(guān)于解決java啟動(dòng)時(shí)報(bào)線程占用:Exception?in?thread?“Thread-14“?java.net.BindException:?Address?already?in?use:?bind的相關(guān)資料,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作
這篇文章主要介紹了用Maven打成可執(zhí)行jar,包含maven依賴,本地依賴的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08Spring IOC源碼剖析_如何整體認(rèn)知Spring體系結(jié)構(gòu)
這篇文章主要介紹了Spring IOC源碼剖析_如何整體認(rèn)知Spring體系結(jié)構(gòu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09