華為云計(jì)算 云知識 JIT的基本原理
JIT的基本原理

JIT vs 解釋器:

盡管解釋器啟動(dòng)時(shí)間更快,占用內(nèi)存更小,但隨著時(shí)間的推移,編譯器逐漸發(fā)揮作用,把熱點(diǎn)代碼編譯成本地代碼之后,可以獲得更高的執(zhí)行效率。

解釋器可以作為編譯激進(jìn)優(yōu)化的一個(gè)逃生門,當(dāng)編譯器的激進(jìn)優(yōu)化不成立時(shí),可以通過逆優(yōu)化退回到解釋模式,如下圖所示。

Hotspot虛擬機(jī)中內(nèi)置了2個(gè)編譯器Client Compiler (C1)和Server Compiler (C2),默認(rèn)情況下,采用解釋器和編譯器配合的方式工作,具體使用哪一個(gè)編譯器,取決于虛擬機(jī)的運(yùn)行模式。用戶可以通過-client 或–server強(qiáng)制指定虛擬機(jī)的編譯模式。