0.参考文章
https://zhuanlan.zhihu.com/p/685026219
1.一些名词
IL(Intermediate Language)
:中间语言(类似于汇编代码)CIL(Common Intermediate Language)
:公共中间语言(特指在.Net平台下的IL标准)CLR(Common Language Runtime)
:公共语言运行时,其实就是一个虚拟机,C#程序运行时都会启动它,它负责将IL翻译为对应平台的机器码,内存管理等
2.三种编译方式
JIT(Just in time)
:动态编译/即时编译
编译时:C# => CIL
运行时:CIL => 各平台机器码 => 执行(虚拟机CLR,JVM的工作)
优点:编译时间短
缺点:运行速度长AOT(Ahead of time)
:静态编译/提前编译
编译时:C# => CIL => 各平台机器码
运行时: 执行 (仍有部分JIT模式)
优点ÿ