摘要:缺陷舊代碼難以擴(kuò)展和維護(hù)使用更多的內(nèi)聯(lián)函數(shù),開發(fā)成本太大。具體解釋第二點(diǎn)缺陷啟動的時候會檢測運(yùn)行在哪個處理器上,并且更具特定的處理器生成特定的內(nèi)聯(lián)函數(shù)表,極大的運(yùn)用了硬件的能力。更快的新編譯器功能原型設(shè)計。編譯器可以獨(dú)立于。
本文思路很清晰,分兩步走。第一步,老的即時編譯的缺陷導(dǎo)致新的編譯器孕育而生。第二步,具體講解Graal編譯器的特性。
老即時編譯 流程先啟動解釋編譯,分析出解釋多次的代碼,使用c1編譯器進(jìn)行編譯,再次分析c1編譯器編譯多次的代碼,使用c2編譯器進(jìn)行編譯。
c2編譯器是最重要的一環(huán),因?yàn)閏2編譯出高度優(yōu)化的機(jī)器碼。缺陷
1.舊代碼難以擴(kuò)展和維護(hù)
2.使用更多的JVM內(nèi)聯(lián)函數(shù),開發(fā)成本太大。
具體解釋第二點(diǎn)缺陷
JVM啟動的時候會檢測運(yùn)行在哪個處理器上,并且更具特定的處理器生成特定的內(nèi)聯(lián)函數(shù)表,極大的運(yùn)用了硬件的能力。這樣就導(dǎo)致對于特定的處理器需要特定的內(nèi)聯(lián)表函數(shù),就需要更多的內(nèi)聯(lián)函數(shù)。所以導(dǎo)致開發(fā)成本和維護(hù)成本大。
新即時編譯 目標(biāo)更好的編譯Java代碼,那么出發(fā)點(diǎn)就是JIT就是將字節(jié)碼轉(zhuǎn)換為機(jī)器碼,在Java中就是從byte[]轉(zhuǎn)到另外一個byte[],那么轉(zhuǎn)換代碼可不可以用java來寫。
優(yōu)勢工程師開發(fā)新編譯器的進(jìn)入門檻要低得多。
編譯器的內(nèi)存安全性。
能夠利用成熟的 Java 工具進(jìn)行編譯器開發(fā)。
更快的新編譯器功能原型設(shè)計。
編譯器可以獨(dú)立于 HotSpot。
編譯器能夠自己編譯自己,以生成更快的 JIT 編譯版本。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/73427.html
摘要:今天收到一封郵件組的郵件,是關(guān)于的,版將作為第一個的版。版特性包括挑了感興趣的看了下,包括以下通過使用并行來改進(jìn)最壞情況下的延遲。雖然式設(shè)計成避免的,但有些情況下回收器會降級成。 今天收到一封郵件組的郵件,是關(guān)于JDK 10 First Release Candidate的, JDK10 b43版將作為第一個JDK10的RC版。 b43版特性包括: 286: Local-Variabl...
摘要:的新特性說了這么多,看都會有哪些特性來改變我們寫代碼的方式呢局部變量類型推斷局部變量類型推斷可以說是中最值得注意的特性,這是語言開發(fā)人員為了簡化應(yīng)用程序的編寫而采取的又一步,如下圖所示。 showImg(https://segmentfault.com/img/remote/1460000015356980); Java 9才發(fā)布幾個月,很多玩意都沒整明白,現(xiàn)在Java 10又快要來了...
摘要:基于局部性原理,計算機(jī)處理器在設(shè)計時做了各種優(yōu)化,比如現(xiàn)代的多級分支預(yù)測有良好局部性的程序比局部性差的程序運(yùn)行得更快。目前計算機(jī)設(shè)計中,都是以塊頁為單位管理調(diào)度存儲,其實(shí)就是在利用空間局部性來優(yōu)化性能。 學(xué)過計算機(jī)底層原理、了解過很多架構(gòu)設(shè)計或者是做過優(yōu)化的同學(xué),應(yīng)該很熟悉局部性原理。即便是非計算機(jī)行業(yè)的人,在做各種調(diào)優(yōu)、提效時也不得不考慮到局部性,只不過他們不常用局部性一詞。如果...
摘要:某個測試服務(wù)器試圖通過反射來修改變量的值,出現(xiàn)了時靈時不靈的現(xiàn)象。這個閾值隨時會變,只是測著玩的編譯是可以取消的,現(xiàn)在修改如下,在用反射設(shè)值后,再次執(zhí)行萬次直接取值現(xiàn)在的執(zhí)行結(jié)果又是了。結(jié)論不要修改變量,會出問題的關(guān)于編譯期優(yōu)化的更多知識 某個測試服務(wù)器試圖通過反射來修改static final變量的值,出現(xiàn)了時靈時不靈的現(xiàn)象。 開發(fā)環(huán)境無法重現(xiàn)。這是怎么回事呢? 先介紹背景知識 一般...
摘要:但在密集計算方面比等靜態(tài)編譯語言差幾十倍甚至上百倍。一使用棧內(nèi)存在引擎和擴(kuò)展中,經(jīng)常要創(chuàng)建一個的變量,底層就是一個指針。代碼中創(chuàng)建的變量也進(jìn)行了優(yōu)化,直接在棧內(nèi)存上預(yù)分配。應(yīng)用層與底層在錯誤拋出的方式全部統(tǒng)一為異常。 原文:http://rango.swoole.com/archives/440最近PHP官方終于發(fā)布了傳說中的PHP7,雖然只是alpha版。PHP7號稱是新一代的PHP...
閱讀 3223·2021-11-23 09:51
閱讀 1030·2021-08-05 09:58
閱讀 663·2019-08-29 16:05
閱讀 971·2019-08-28 18:17
閱讀 3029·2019-08-26 14:06
閱讀 2721·2019-08-26 12:20
閱讀 2154·2019-08-26 12:18
閱讀 3064·2019-08-26 11:56