-
C#公共语言运行时(CLR)的架构
公共语言运行时(CLR)的架构
原文:https://www . geesforgeks . org/architecture-of-common-language-runtime-clr/
中的公共语言运行库 。NET Framework 是为 C#、F#、Visual Basic 等各种语言处理程序执行的虚拟机组件。NET 等。托管执行环境通过提供各种服务来提供,如内存管理、安全处理、异常处理、垃圾收集、线程管理等。 公共语言运行库实现了 VES(虚拟执行系统),这是一个提供托管代码执行环境的运行时系统。VES 是在微软的 CLI(公共语言基础设施)实现中定义的。
公共语言运行库的体系结构
演示公共语言运行库体系结构的图表如下所示:
公共语言运行库的体系结构中有多个组件。关于这些的细节如下:
- 基类库支持:公共语言运行库为基类库提供支持。BCL 包含多个库,提供各种功能,如集合、输入/输出、 XML 、数据类型定义等。对于多个。NET 编程语言。
- 线程支持:CLR 为管理多个线程的并行执行提供线程支持。制度。线程类用作这个的基类。
- COM 封送拆收器:与中的 COM(组件对象模型)组件的通信。NET 应用程序是使用 COM 封送拆收器提供的。这提供了组件互操作性支持。
- 类型检查器:类型安全由类型检查器通过使用公共类型系统(CTS)和公共语言规范(CLS)来提供,它们在 CLR 中提供来验证应用程序中使用的类型。
- 异常管理器:不管如何,CLR 中的异常管理器都会处理异常。创造它们的网络语言。对于特定的应用程序,异常的 catch 块在异常发生时执行,如果没有 catch 块,则应用程序终止。
- 安全引擎:CLR 中的安全引擎处理代码级、文件夹级、机器级等不同级别的安全权限。这是使用中提供的各种工具完成的。NET 框架。
- 调试引擎:可以在运行时使用调试引擎调试应用程序。有各种 ICorDebug 接口用于跟踪正在调试的应用程序的托管代码。
- JIT 编译器:CLR 中的 JIT 编译器将微软中间语言(MSIL)转换为特定于 JIT 编译器运行的计算机环境的机器代码。存储已编译的 MSIL,以便在需要时可用于后续调用。
- 代码管理器:CLR 中的代码管理器管理在中开发的代码。NET 框架,即托管代码。托管代码由特定于语言的编译器转换为中间语言,然后由即时编译器将中间语言转换为机器代码。
- 垃圾收集器:使用 CLR 中的垃圾收集器可以实现自动内存管理。垃圾收集器会在不再需要内存空间后自动释放内存空间,以便重新分配。
- CLR Loader: 各种模块、资源、程序集等。由 CLR 加载程序加载。此外,如果实际需要,该加载程序会按需加载模块,这样程序初始化时间更快,消耗的资源更少。
版权属于:月萌API www.moonapi.com,转载请注明出处
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式