.Net Discovery系列之-深入理解平台机制与性能影响 (中)

  上一篇文章中Aicken为大家介绍了.NET平台的垃圾回收机制与其对性能的影响,这一篇中将继续为大家介绍.NET平台的另一批黑马—JIT。有关JIT的机制分析

  ● 机制分析以C#为例,在C#代码运行前,一般会经过两次编译,第一阶段是C#代码向MSIL的编译,第二阶段是IL向本地代码的编译。第一阶段的编译成果是生成托管模块,第二阶段的编译成果是生成本地代码以供运行,从这里各位同学可以看出,第一阶段生成的MSIL是不能直接运行的。必须指出的是JIT在第一次编译IL后,会修改对应方法相应的内存地址入口,下一次需要执行这个方法时,CLR会直接访问对应的内存地址,而不会经过JIT了。

  以Load()方法为例,假如Load()方法中调用了两次同类型中的方法:

   Void Load(){A.a1("First");A.a1("Second");}
  
static class A{Public void a1(string str){}
  Public
void a2(string str){}
  Public
void a3(string str){}}

NET技术.Net Discovery系列之-深入理解平台机制与性能影响 (中),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。