加载中...

即时编译(Just-In-Time Compilation,JIT)指在程序运行期间把字节码或源代码动态翻译为本地机器码执行的技术,与运行前完成翻译的 AOT 编译相对。
典型实现采用分层策略:代码先由解释器执行并收集调用次数、分支走向、实际类型等剖析信息;被识别为热点的方法或循环交给编译器生成优化机器码;若投机假设失效则去优化(deoptimization)回退到解释执行。
JIT 能利用只有运行时才可知的信息——实际类型分布、常量参数、目标 CPU 指令集——做出静态编译难以企及的投机优化,如虚调用内联。
HotSpot JVM(C1/C2 分层编译)、V8(Ignition + TurboFan)、.NET CLR 的 RyuJIT、LuaJIT 均为代表;代价是预热时间、内存开销,以及可写可执行内存带来的安全考量。

登录 后参与讨论
暂无讨论,来发表第一条评论吧