摘要:
由于C#源代码经过编译器编译生成的是IL代码,而IL是与CPU无关的机器语言。因此当程序运行于特定的CPU时,首先必须将IL转换成本地CPU指令,这正是JIT(Just-In-Time)编译器的任务、职责。当程序中某个具体的方法首次被调用的时候,JIT主要会执行以下步骤:找到该方法的IL将IL编译成优化过的本地CPU指令并保存到一个动态分配的内存中执行生成的本地指令并返回由于第一次调用会经过编译和优化等步骤,所以会有一定的性能损失。但是以后对该方法的调用会以本地代码的形式全速运行。如果您认为这些性能损失不容忽视,可以使用NGen.exe工具来将应用程序的IL代码编译成本地代码。然后,每当CLR 阅读全文