公司網(wǎng)站制作JavaScript引擎優(yōu)化技術(shù)
日期 : 2021-01-22 21:10:38
JavaScript引擎優(yōu)化技術(shù)主要是基于即時(shí)編譯的預先編譯方法。它的主要原理是將上一次網(wǎng)頁(yè)或應用執行過(guò)程中生成的特定函數的字節碼或機器碼保存下來(lái)。

下一次相同的Web應用再次運行時(shí)直接執行已保存的特定函數的字節碼或機器碼。預先編譯和即時(shí)編譯的不同之處在于即時(shí)編譯是發(fā)生在單次Web應用或網(wǎng)頁(yè)運行過(guò)程中的,是在網(wǎng)頁(yè)和Web應用每次加載或運行的時(shí)候都要進(jìn)行的,而預先編譯面向的是Web應用多次運行過(guò)程,將上次網(wǎng)頁(yè)和Web應用加載或運行的時(shí)候保存的機器碼或字節碼用于下次網(wǎng)頁(yè)的加載或Web應用的運行。

依據保存的代碼類(lèi)型不同,預先編譯方法可以分為基于字節碼的預先編譯方法、基于機器碼的預先編譯和自適應預先編譯方法?;谧止澊a的預先編譯方法保存熱點(diǎn)函數的字節碼供下次使用,基于機器碼的預先編譯方法將熱點(diǎn)函數的機器碼或優(yōu)化的機器碼保存下來(lái)供下次使用,自適應預先編譯方法綜合基于字節碼和基于機器碼的預先編譯方法,基于一定的代價(jià)模型對熱點(diǎn)函數的字節碼或機器碼進(jìn)行自適應選擇。

下一次相同的Web應用再次運行時(shí)直接執行已保存的特定函數的字節碼或機器碼。預先編譯和即時(shí)編譯的不同之處在于即時(shí)編譯是發(fā)生在單次Web應用或網(wǎng)頁(yè)運行過(guò)程中的,是在網(wǎng)頁(yè)和Web應用每次加載或運行的時(shí)候都要進(jìn)行的,而預先編譯面向的是Web應用多次運行過(guò)程,將上次網(wǎng)頁(yè)和Web應用加載或運行的時(shí)候保存的機器碼或字節碼用于下次網(wǎng)頁(yè)的加載或Web應用的運行。

依據保存的代碼類(lèi)型不同,預先編譯方法可以分為基于字節碼的預先編譯方法、基于機器碼的預先編譯和自適應預先編譯方法?;谧止澊a的預先編譯方法保存熱點(diǎn)函數的字節碼供下次使用,基于機器碼的預先編譯方法將熱點(diǎn)函數的機器碼或優(yōu)化的機器碼保存下來(lái)供下次使用,自適應預先編譯方法綜合基于字節碼和基于機器碼的預先編譯方法,基于一定的代價(jià)模型對熱點(diǎn)函數的字節碼或機器碼進(jìn)行自適應選擇。