JIT(just in time)
console.writeLine为例子,首先找到有console这个类型的程序集,然后通过元数据找到其writeLine这个方法的IL
每个方法有个记录项为jitCompiler函数,第一次初始化,先分配内存块并把IL编译成本机CPU指令,然后令对应方法的jitCompiler指向这个内存块,然后执行内存块的指令并返回。然后当后面第二次调用时候,因为该方法的jitCompiler已经指向了一个编译好的本机CPU指令的内存块,所以就可以直接执行内存块的指令,无需再编译,整个过程只在第一次调用有开销。
指令编译时被分配的内存块是动态分配的,因此一旦退出程序,编译好的指令也会丢失