Common Language Runtime

Common Language Runtime公共语言运行时(CLR)

是微软.NET框架的核心组件。CLR提供了一个运行环境,管理代码的执行,并提供了一系列服务,使得不同编程语言(如C#、VB.NET、F#等)可以在同一个平台上互操作。CLR是.NET应用程序的执行引擎,类似于Java的JVM(Java Virtual Machine)。

CLR 的主要功能

  1. 内存管理

    • 垃圾回收(Garbage Collection, GC):自动管理内存,回收不再使用的对象,避免内存泄漏。
    • 堆栈管理:管理方法调用栈和对象在堆上的分配。
  2. 安全性

    • 代码访问安全(Code Access Security, CAS):基于权限的安全模型,控制代码的执行权限。
    • 验证和证实:在加载时验证代码的类型安全,并确保代码来源的可靠性。
  3. 异常处理

    • 提供一致的异常处理机制,允许跨语言的异常传播和处理。
  4. 多线程和并发

    • 提供对多线程编程的支持,包括线程管理和并发控制。
  5. 中间语言(Intermediate Language, IL)执行

    • CLR执行从高级语言编译而来的中间语言(IL)代码,IL代码是与平台无关的中间表示。
  6. 类型系统

    • 提供统一的类型系统(Common Type System, CTS),确保不同语言之间的数据类型可以互操作。
  7. JIT编译

    • 运行时将IL代码编译为本地机器码进行执行,提高运行效率。这个过程称为即时编译(Just-In-Time Compilation, JIT)。
  8. 程序集加载和执行

    • 管理程序集(Assemblies)的加载、链接和执行。程序集是部署和版本控制的基本单元。

CLR的工作原理

  1. 编译到IL

    • 当你编写C#、VB.NET或其他.NET语言的代码并编译时,编译器将源代码编译成中间语言(IL)。
  2. 加载程序集

    • 当你运行一个.NET应用程序时,CLR加载相应的程序集(通常是DLL或EXE文件),并读取其元数据。
  3. JIT编译

    • CLR将IL代码即时编译(JIT)为特定平台的本地机器码。这个过程是在方法第一次被调用时进行的。
  4. 执行代码

    • 编译后的本地代码被执行,同时CLR提供各种运行时服务,如内存管理和安全性检查。
  5. 垃圾回收

    • 在代码执行过程中,CLR会自动进行垃圾回收,释放不再需要的对象占用的内存
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值