熱點(diǎn)檢測(cè)唱捣、方法內(nèi)聯(lián)两蟀、動(dòng)態(tài)反優(yōu)化

熱點(diǎn)檢測(cè)

?自適應(yīng)優(yōu)化通過(guò)利用有趣的程序?qū)傩越鉀Q了JIT編譯的問(wèn)題。實(shí)際上震缭,所有程序都將大部分時(shí)間都花在執(zhí)行少量代碼上赂毯。Java HotSpot VM不會(huì)立即編譯方法,而是立即使用解釋器運(yùn)行程序拣宰,并在運(yùn)行時(shí)分析代碼以檢測(cè)程序中的關(guān)鍵熱點(diǎn)党涕。然后,它將本地代碼優(yōu)化器的注意力集中在熱點(diǎn)上巡社。通過(guò)避免不經(jīng)常執(zhí)行的代碼(程序的大部分)的編譯膛堤,Java HotSpot編譯器可以將更多的注意力放在程序的性能關(guān)鍵部分上,而不必增加總的編譯時(shí)間重贺。隨著程序的運(yùn)行骑祟,熱點(diǎn)監(jiān)視將動(dòng)態(tài)地繼續(xù)進(jìn)行回懦,
?這種方法的一個(gè)微妙但重要的好處是,通過(guò)將編譯延遲到代碼執(zhí)行了一段時(shí)間之后(以機(jī)器時(shí)間而非用戶時(shí)間來(lái)衡量)次企,可以收集有關(guān)代碼使用方式的信息怯晕,然后加以利用進(jìn)行更智能的優(yōu)化。同樣缸棵,減少了內(nèi)存占用舟茶。除了在程序中收集有關(guān)熱點(diǎn)的信息外,還會(huì)收集其他類型的信息堵第,例如有關(guān)用于虛擬方法調(diào)用的主叫方關(guān)系的數(shù)據(jù)吧凉。

參考官方鏈接:https://www.oracle.com/java/technologies/whitepaper.html#method


方法內(nèi)聯(lián)

?Java編程語(yǔ)言中虛擬方法調(diào)用的頻率是重要的優(yōu)化瓶頸。一旦Java HotSpot自適應(yīng)優(yōu)化器在執(zhí)行期間收集了有關(guān)程序熱點(diǎn)的信息踏志,它不僅將熱點(diǎn)編譯為本機(jī)代碼阀捅,而且還會(huì)對(duì)該代碼執(zhí)行大量的方法內(nèi)聯(lián)。
?內(nèi)聯(lián)具有重要的好處针余。它大大降低了方法調(diào)用的動(dòng)態(tài)頻率饲鄙,從而節(jié)省了執(zhí)行這些方法調(diào)用所需的時(shí)間。但更重要的是圆雁,內(nèi)聯(lián)會(huì)產(chǎn)生更大的代碼塊忍级,以供優(yōu)化程序使用。這就產(chǎn)生了一種情況伪朽,大大提高了傳統(tǒng)編譯器優(yōu)化的效率轴咱,克服了提高Java編程語(yǔ)言性能的主要障礙。
?內(nèi)聯(lián)與其他代碼優(yōu)化具有協(xié)同作用烈涮,因?yàn)樗顾鼈兏行臃巍kS著Java HotSpot編譯器的成熟,對(duì)大型內(nèi)聯(lián)代碼塊進(jìn)行操作的能力將為將來(lái)的許多更高級(jí)的優(yōu)化打開(kāi)大門(mén)跃脊。

參考官方鏈接:https://www.oracle.com/java/technologies/whitepaper.html#method

方法內(nèi)聯(lián)個(gè)人筆記:Java 方法內(nèi)聯(lián)


動(dòng)態(tài)反優(yōu)化

?內(nèi)聯(lián)是一項(xiàng)重要的優(yōu)化宇挫,但是傳統(tǒng)上苛吱,對(duì)于像Java語(yǔ)言這樣的面向動(dòng)態(tài)對(duì)象的語(yǔ)言酪术,執(zhí)行內(nèi)聯(lián)一直非常困難。此外翠储,盡管檢測(cè)熱點(diǎn)并內(nèi)聯(lián)它們調(diào)用的方法非常困難绘雁,但仍不足以提供完整的Java編程語(yǔ)言語(yǔ)義。這是因?yàn)橛肑ava語(yǔ)言編寫(xiě)的程序不僅可以即時(shí)更改方法調(diào)用的模式援所,而且還可以將新的Java代碼動(dòng)態(tài)地加載到正在運(yùn)行的程序中庐舟。
?內(nèi)聯(lián)基于全局分析的形式。動(dòng)態(tài)加載顯著使內(nèi)聯(lián)復(fù)雜化住拭,因?yàn)樗牧顺绦蛑械娜株P(guān)系挪略。新類可能包含需要在適當(dāng)位置內(nèi)聯(lián)的新方法历帚。因此,即使在執(zhí)行針對(duì)熱點(diǎn)的代碼時(shí)杠娱,Java HotSpot VM也必須能夠動(dòng)態(tài)地取消優(yōu)化(然后在必要時(shí)重新優(yōu)化)先前優(yōu)化的熱點(diǎn)挽牢。如果沒(méi)有此功能,就無(wú)法在基于Java技術(shù)的程序上安全地執(zhí)行常規(guī)內(nèi)聯(lián)摊求。

參考官方鏈接:https://www.oracle.com/java/technologies/whitepaper.html#method

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末禽拔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子室叉,更是在濱河造成了極大的恐慌睹栖,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茧痕,死亡現(xiàn)場(chǎng)離奇詭異野来,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)踪旷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)梁只,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人埃脏,你說(shuō)我怎么就攤上這事搪锣。” “怎么了彩掐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵构舟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我堵幽,道長(zhǎng)狗超,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任朴下,我火速辦了婚禮努咐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殴胧。我一直安慰自己渗稍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布团滥。 她就那樣靜靜地躺著竿屹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灸姊。 梳的紋絲不亂的頭發(fā)上拱燃,一...
    開(kāi)封第一講書(shū)人閱讀 51,231評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音力惯,去河邊找鬼碗誉。 笑死召嘶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哮缺。 我是一名探鬼主播苍蔬,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蝴蜓!你這毒婦竟也來(lái)了碟绑?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茎匠,失蹤者是張志新(化名)和其女友劉穎格仲,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诵冒,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凯肋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汽馋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侮东。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖豹芯,靈堂內(nèi)的尸體忽然破棺而出悄雅,到底是詐尸還是另有隱情,我是刑警寧澤铁蹈,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布宽闲,位于F島的核電站,受9級(jí)特大地震影響握牧,放射性物質(zhì)發(fā)生泄漏容诬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一沿腰、第九天 我趴在偏房一處隱蔽的房頂上張望览徒。 院中可真熱鬧,春花似錦颂龙、人聲如沸习蓬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)友雳。三九已至稿湿,卻和暖如春铅匹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饺藤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工包斑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留流礁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓罗丰,卻偏偏與公主長(zhǎng)得像神帅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萌抵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354