JIT
在運(yùn)行時(shí)將源碼/中間字節(jié)碼編譯成可執(zhí)行的二進(jìn)制碼拔稳。即邊編譯邊運(yùn)行。
AOT
提前將代碼編譯成可執(zhí)行的二進(jìn)制碼锹雏。即先編譯后運(yùn)行。
特性
動(dòng)態(tài)性
- JIT 能夠自己生成新的源碼术奖,熱重載替換原碼礁遵。根據(jù)代碼執(zhí)行的熱度優(yōu)化生成更高效的二進(jìn)制代碼等。
- AOT 無(wú)法做到
平臺(tái)無(wú)關(guān)
動(dòng)態(tài)性 | 平臺(tái) | 內(nèi)存 | 性能 | |
---|---|---|---|---|
JIT | 能夠自己生成新的源碼采记,熱重載替換原碼佣耐。根據(jù)代碼執(zhí)行的熱度優(yōu)化生成更高效的二進(jìn)制代碼等,能夠?qū)崿F(xiàn)漸進(jìn)升級(jí) | 平臺(tái)無(wú)關(guān) | 開(kāi)銷多唧龄,編譯帶來(lái)額外花銷 | 慢啟動(dòng)兼砖,隨著優(yōu)化性能不斷提高。但這也導(dǎo)致了性能波動(dòng)的不穩(wěn)定性既棺。 |
AOT | 不具備動(dòng)態(tài)性讽挟,app升級(jí)需重新編譯 | 平臺(tái)相關(guān) | 開(kāi)銷少 | 啟動(dòng)快,性能穩(wěn)定丸冕,但無(wú)法得到進(jìn)一步優(yōu)化 |
總結(jié)
兩者的總體性能差別不大耽梅,甚至JIT有些時(shí)候能超過(guò)AOT。但是JIT的性能波動(dòng)導(dǎo)致了有些應(yīng)用不適合使用胖烛。兩者都不能解決所有需求眼姐,有時(shí)候還需要作為互補(bǔ)。