.Net 7 的 R2R,Crossgen2是什么?
Net 什么
2023-06-13 09:16:59 时间
楔子
来下这些概念
R22,Crossgen2这两个东西,跟前面讲的AOT和CLR有异曲同工之妙,到底什么呢?本篇来看下。
R2R
R2R(ReadyToRun),是一种结合了AOT和CLR编译模式,取其优点,抛其缺点的一种编译方式。
具体的呢,R2R包含了本地机器码编译(AOT)和即时编译(JIT),R2R把一些函数编译的最佳结果存储在DLL或者Exe里面,下次直接进行调用。而没有被编译的函数,则调用RyuJit进行编译,视乎情况而定是否保存结果。这样就导致了,R2R的特殊编译模式。而AOT的缺点比如:需要完全匹配的编译设置,放弃许多优化,并且在跨模块通用虚拟方法实现存在麻烦的情况下得以通过JIT即时来解决。而JIT的缺点,比如第一次启动较慢,无论什么函数都要来一遍即时编译等等都得以通过AOT解决。
两相互补,完美配合,应该是微软的初衷。
Crossgen2
Crossgen2 生成包含 CoreCLR 运行时的代码和数据结构的 ReadyToRun 模块.
简单点,这个工具就是生成R2R格式的文件,以供CLR按照既定的格式进行运行和编译。
而AOT的编译器ILC,则是与crossgen2共享代码库的
终章
ILC和Crossgen2是两个工具,分别生成AOT目标文件和R2R格式文件。
相关文章
- 用.NET开发的磁力搜索引擎——btbook.net「建议收藏」
- 8月份的.NET Conf 活动 专注于 .NET MAUI
- 部署环境什么意思_离线部署net
- 使用.NET开发一个屏幕OCR工具
- .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署
- 【水一篇】骚操作之net 6的winform启动的同时启动Net 6 WebApi【同一套代码】
- JetBrains Rider for mac(跨平台.NET IDE集成开发) v2022.3.1激活版
- 开发积极探索Mysql.Net 开发之路(mysql.net)
- 跨平台利器:.NET在Linux上的运行(.net运行在linux)
- Redis从入门到精通:.NET实现指南(redis.net书籍)
- asp.net的web服务MSSQL检测ASP.NET的Web服务——利用它构建更棒的站点(mssql检测基于)
- Net调用MySQL技术实践(.net 调用mysql)
- Net框架如何使用MySQL数据库(.net能用mysql吗)
- NET技术结合MySQL实现数据库访问极致体验(.net数据库mysql)
- NET备份MySQL提升数据安全性(.net 备份mysql)
- Net中连接MySQL技术简述(.net中引用mysql)
- Net和MySQL互相受益的强大组合(.net 与mysql)
- NET 对MySQL 的支持有限(.net不支持mysql)
- Asp.net中处理一个站点不同Web应用共享Session的问题
- ASP.NET程序中常用代码汇总
- Asp.Net音频文件上传和播放代码
- 获得.net控件的windows句柄的方法
- jsp和asp.net共享session值示例代码
- 记录asp.net网站是什么原因导致停止运行的代码