.NET运行机制

.NET Framework是一个以规格为基础的开发平台。而这份规格统称为CLI(Comm Language Infrastructure),而最初由MicroSoft依据这个规格所自行实现的产品就是CLR(Common Language Runtime)。在CLI规格中,又细分为四个子规格。CIL(Common intermidiate Language), CTS(Common Type System), CTS又细分为CLS(Common Language Specification)子规格和VES(Virtual Executing System). CLS包含大多数语言都能实现的类型,CLI规范支持CLI的程序语言至少必须满足CLS的规格,这样才能达到跨语言集成的目的。

CLR运行机制

支持CLI的程序语言必须拥有一个编译器,该编译器必须具备将源码编译成IL code的能力,也就是CIL规格所定义的语言格式,然后交由CLR来运行,在载入IL code 之后,CLR将调用JIT Complier(Just In Time Complier)将这些IL code 转化成Native code(机器码)来运行。

CLI运作图


  JIT是.NET程序运行的重要部件之一, 全程是即时编译器. .NET程序被加载入内存以后,但某段IL代码被第一次运行的时候,JIT编译器就会将这段IL代码全部编译成本地代码,然后再执行, 这也就是为什么.NET程序第一次运行都启动很慢的原因. 随.NET库, MS还附带了一个工具,可以实现将.NET程序所有的IL代码都编译成本地代码并保存在缓冲中,运行时也就可以脱离JIT了.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值