企業(yè)網(wǎng)站建設(shè)JavaScript引擎JITC的優(yōu)化方法
日期 : 2021-01-22 21:01:52
目前關(guān)于JavaScript引擎JITC的優(yōu)化方法又可以分為兩類,一類是硬件相關(guān)的優(yōu)化,在使用JIT產(chǎn)生的機(jī)器碼過程中每次都要進(jìn)行deoptimization check,平均情況下12.9%的JavaScript運(yùn)行時(shí)間花在了deoptimization check上,但實(shí)際上deoptimization check失敗的次數(shù)相對(duì)較少,因此文獻(xiàn)針對(duì)不同類型的deoptimization check分別引入了不同的機(jī)器指令來替代原來的check指令以減少deoptimization check的時(shí)間代價(jià),文獻(xiàn)提出了低復(fù)雜度的硬件架構(gòu)擴(kuò)展CheckedLoad,它引入了新的ISA指令替代軟件deoptimization check,同時(shí)對(duì)變量類型預(yù)測(cè)提出了硬件支持,減小deoptimization check失敗的幾率。
另一類是軟件相關(guān)的優(yōu)化,文獻(xiàn)分析了JITC過程中脫優(yōu)化的代價(jià),并提出了相應(yīng)的建議以減少脫優(yōu)化發(fā)生的次數(shù)。文獻(xiàn)從不同方面改進(jìn)JITC過程中類型特化的機(jī)制。文獻(xiàn)對(duì)JITC過程中的熱點(diǎn)探測(cè)算法進(jìn)行改進(jìn),以更早更精確地發(fā)現(xiàn)熱點(diǎn)代碼,從而盡早對(duì)其優(yōu)化,而且考慮到deoptimization的次數(shù)來對(duì)熱點(diǎn)探測(cè)算法進(jìn)行改進(jìn)。
文獻(xiàn)針對(duì)資源受限智能終端設(shè)備對(duì)JITC編譯器進(jìn)行了改進(jìn),生成尺寸更小的機(jī)器碼指令以減少JITC的內(nèi)存占用。文獻(xiàn)對(duì)JITC的過程中字節(jié)碼的內(nèi)存緩存機(jī)制進(jìn)行了改進(jìn)。
另一類是軟件相關(guān)的優(yōu)化,文獻(xiàn)分析了JITC過程中脫優(yōu)化的代價(jià),并提出了相應(yīng)的建議以減少脫優(yōu)化發(fā)生的次數(shù)。文獻(xiàn)從不同方面改進(jìn)JITC過程中類型特化的機(jī)制。文獻(xiàn)對(duì)JITC過程中的熱點(diǎn)探測(cè)算法進(jìn)行改進(jìn),以更早更精確地發(fā)現(xiàn)熱點(diǎn)代碼,從而盡早對(duì)其優(yōu)化,而且考慮到deoptimization的次數(shù)來對(duì)熱點(diǎn)探測(cè)算法進(jìn)行改進(jìn)。
文獻(xiàn)針對(duì)資源受限智能終端設(shè)備對(duì)JITC編譯器進(jìn)行了改進(jìn),生成尺寸更小的機(jī)器碼指令以減少JITC的內(nèi)存占用。文獻(xiàn)對(duì)JITC的過程中字節(jié)碼的內(nèi)存緩存機(jī)制進(jìn)行了改進(jìn)。