【轉(zhuǎn)載】Java之什么是JIT (Just In Time)贫堰?

JIT概念

JIT:Just In Time Compiler穆壕,一般翻譯為即時(shí)編譯器,這是是針對(duì)解釋型語(yǔ)言而言的其屏,而且并非虛擬機(jī)必須喇勋,是一種優(yōu)化手段,Java的商用虛擬機(jī)HotSpot就有這種技術(shù)手段偎行,Java虛擬機(jī)標(biāo)準(zhǔn)對(duì)JIT的存在沒(méi)有作出任何規(guī)范川背,所以這是虛擬機(jī)實(shí)現(xiàn)的自定義優(yōu)化技術(shù)。

HotSpot虛擬機(jī)的執(zhí)行引擎在執(zhí)行Java代碼是可以采用【解釋執(zhí)行】和【編譯執(zhí)行】?jī)煞N方式的蛤袒,如果采用的是編譯執(zhí)行方式渗常,那么就會(huì)使用到JIT,而解釋執(zhí)行就不會(huì)使用到JIT汗盘,所以,早期說(shuō)Java是解釋型語(yǔ)言询一,是沒(méi)有任何問(wèn)題的隐孽,而在擁有JIT的Java虛擬機(jī)環(huán)境下,說(shuō)Java是解釋型語(yǔ)言嚴(yán)格意義上已經(jīng)不正確了健蕊。

HotSpot中的編譯器是javac菱阵,他的工作是將源代碼編譯成字節(jié)碼,這部分工作是完全獨(dú)立的缩功,完全不需要運(yùn)行時(shí)參與晴及,所以Java程序的編譯是半獨(dú)立的實(shí)現(xiàn)。有了字節(jié)碼嫡锌,就有解釋器來(lái)進(jìn)行解釋執(zhí)行虑稼,這是早期虛擬機(jī)的工作流程,后來(lái)势木,虛擬機(jī)會(huì)將執(zhí)行頻率高的方法或語(yǔ)句塊通過(guò)JIT編譯成本地機(jī)器碼蛛倦,提高了代碼執(zhí)行的效率,至此你已經(jīng)了解了JIT在Java虛擬機(jī)中所處的地位和工作的主要內(nèi)容啦桌。

1.JIT的工作原理圖

image.png

工作原理
當(dāng)JIT編譯啟用時(shí)(默認(rèn)是啟用的)溯壶,JVM讀入.class文件解釋后,將其發(fā)給JIT編譯器。JIT編譯器將字節(jié)碼編譯成本機(jī)機(jī)器代碼且改。

通常javac將程序源碼編譯验烧,轉(zhuǎn)換成java字節(jié)碼,JVM通過(guò)解釋字節(jié)碼將其翻譯成相應(yīng)的機(jī)器指令又跛,逐條讀入碍拆,逐條解釋翻譯。非常顯然效扫,經(jīng)過(guò)解釋運(yùn)行倔监,其運(yùn)行速度必定會(huì)比可運(yùn)行的二進(jìn)制字節(jié)碼程序慢。為了提高運(yùn)行速度菌仁,引入了JIT技術(shù)浩习。

在執(zhí)行時(shí)JIT會(huì)把翻譯過(guò)的機(jī)器碼保存起來(lái),已備下次使用济丘,因此從理論上來(lái)說(shuō)谱秽,採(cǎi)用該JIT技術(shù)能夠,能夠接近曾經(jīng)純編譯技術(shù)摹迷。

2.相關(guān)知識(shí)
JIT是just in time,即時(shí)編譯技術(shù)疟赊。使用該技術(shù),可以加速java程序的運(yùn)行速度峡碉。

JIT并不總是奏效近哟,不能期望JIT一定可以加速你代碼運(yùn)行的速度,更糟糕的是她有可能減少代碼的運(yùn)行速度鲫寄。這取決于你的代碼結(jié)構(gòu)吉执,當(dāng)然非常多情況下我們還是可以如愿以償?shù)摹?/p>

從上面我們知道了之所以要關(guān)閉JITjava.lang.Compiler.disable(); 是由于加快運(yùn)行的速度。由于JIT對(duì)每條字節(jié)碼都進(jìn)行編譯地来,造成了編譯過(guò)程負(fù)擔(dān)過(guò)重戳玫。為了避免這樣的情況,當(dāng)前的JIT僅僅對(duì)常常運(yùn)行的字節(jié)碼進(jìn)行編譯未斑,如循環(huán)等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咕宿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蜡秽,更是在濱河造成了極大的恐慌府阀,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件载城,死亡現(xiàn)場(chǎng)離奇詭異肌似,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)诉瓦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門川队,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)力细,“玉大人,你說(shuō)我怎么就攤上這事固额∶呗欤” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵斗躏,是天一觀的道長(zhǎng)逝慧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)啄糙,這世上最難降的妖魔是什么笛臣? 我笑而不...
    開(kāi)封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮隧饼,結(jié)果婚禮上沈堡,老公的妹妹穿的比我還像新娘。我一直安慰自己燕雁,他們只是感情好诞丽,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著拐格,像睡著了一般僧免。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捏浊,一...
    開(kāi)封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天懂衩,我揣著相機(jī)與錄音,去河邊找鬼金踪。 笑死勃痴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的热康。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼劣领,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼姐军!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起尖淘,我...
    開(kāi)封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奕锌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后村生,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體惊暴,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年趁桃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辽话。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肄鸽。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖油啤,靈堂內(nèi)的尸體忽然破棺而出典徘,到底是詐尸還是另有隱情,我是刑警寧澤益咬,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布逮诲,位于F島的核電站,受9級(jí)特大地震影響幽告,放射性物質(zhì)發(fā)生泄漏梅鹦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一冗锁、第九天 我趴在偏房一處隱蔽的房頂上張望齐唆。 院中可真熱鬧,春花似錦蒿讥、人聲如沸蝶念。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)媒殉。三九已至,卻和暖如春摔敛,著一層夾襖步出監(jiān)牢的瞬間廷蓉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工马昙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留桃犬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓行楞,卻偏偏與公主長(zhǎng)得像攒暇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子子房,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容