在上一篇的随笔中,我们在理论层面上大致说明了.NET Framework的工作机制,内容的确比较晦涩难懂,但是还是希望大家有时候可以看看。我个人觉得,编程不是一味的敲代码,当自己遇到瓶颈的时候,可以多看下书,多归纳总结下,或许会有意想不到的收获。自从学习了.NET Framework的机制以后,结合相关视频的讲解(黑马程序员_.NET入学辅导班公开课视频[第01季]),对.NET Framework有了一定的了解。下面用通俗易懂的方式进行阐述,可能有所偏颇或是不准确,仅为个人理解,但只是为了方便理解和让初学者有一定的概念。希望各位将错误指出,有则改之无则加勉。

   开始介绍之前,我们还是看下之前微软官方公布的那张.NET Framework环境说明图,如下:

  .NET Framework(二)

  开发者编程的目的就是为了操作 操作系统/硬件,让操作系统/硬件完成特定的操作,方法很多各种各样(通过不同的编程语言不同方式),其中微软给开发者提供一个方法体系。因此,如果你想用通过微软提供的方法去完成相关操作的话,就必须通过.NET这个平台来进行管理,.NET就是方法的相关规则和约束,无规矩不成方圆嘛。编程语言 Visual Basic、C#、Visual C++、JScript 或许多第三方编译器(如 Eiffel、Perl 或 COBOL 编译器)在平台中就充当使用者的角色,但是平台不仅只有使用者,最重要的是其中的管理者吧。 

  CLR(公共语言运行时)就是.NET平台的管理员,管理语言的运行,管理代码的性能甚至内存等一系列与运行有关的内容。也就是说,在.NET里面CLR最大,你想在.NET进行任何操作都必须向CLR申请,它会指导你如何进行下一步,按部就班,事实上CLR基本上都会帮你完成所有的操作。

  CLR身为管理者,统筹全局,当然不可能事必躬亲,它还有2个得力助手,JIT和GC,这是为了让使用者(编程语言)在.NET里拥有更高安全性,易用性和高效性。

   

  在介绍得力助手号之前,我们需要了解,NET里的通行证— —IL/MSIL(Intermediate Language/Microsoft  Intermediate Language)中间语言/微软中间语言,因为.NET的使用者(编程语言)很多,五花八门,所有为了方便管理,他们最后都会由各自对应的编译器编译成.NET里面的同一身份IL,一组可以有效地转换为本机代码且独立于 CPU 的指令。

   当你摇身变成IL时,就可以拜托JIT编译成本机代码,然后和操作系统/硬件一起去做你一直想做却又做不到的事情 。至此,你应该了解 JIT即时编译器(Just-In-Time)的主要职责了吧,它就是将这个IL代码,根据当前的硬件和软件环境,进行运行的编译,并缓存代码。

   (1)至于如何根据当前的硬件和软件环境进行优化,这里可以说一些简单的例子。JIT会根据本机的硬件环境生成对应的代码,当然,也并非行代码都生成。因为JIT会根据代码的与运行情况,根据系统的环境对变异结果做优化,例如:

  

for(int i=0;i<100;i++)
{

}
View Code

相关文章:

  • 2022-03-07
  • 2022-01-28
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-07
  • 2021-11-13
  • 2022-12-23
  • 2021-08-04
相关资源
相似解决方案