.Net 7 的 R2R,Crossgen2是什么?

楔子

来下这些概念

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格式文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java流

流分类 字节流字符流输入流InputStreamReader输出流OutputStream WriterInputStream:BufferedInputStream、DataInputStream、ObjectInputStreamOutputStream:BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream 标准流: System.in 、Syst…

Win7安装OnlyOffice(不使用Docker)

原文同步自作者博客:https://www.daxueyiwu.com/post/741 1、安装准备 (1)安装Elang: 【注意事项】 a)Elang是为了给RabbitMQ使用的,因此在安装Elang之前应确定RabbitMQ的版本及其所需的Elang版本。RabbitMQ的地址…

geek_享受How-To Geek用户样式脚本的好处

geekMost people may not be aware of it but there are two user style scripts that have been created just for use with the How-To Geek website. If you are curious then join us as we look at these two scripts at work. 大多数人可能不知道它,但是已经创…

.NET Core统一参数校验、异常处理、结果返回

我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的,没有统一处理的话,代码就不优雅,也不容易维护。所以,我们需要统一校验参数,…

Memcached 在linux上安装笔记

第一种yum 方式安装 Memcached 支持许多平台:Linux、FreeBSD、Solaris、Mac OS,也可以安装在Windows上。 第一步 Linux系统安装memcached,首先要先安装libevent库 Ubuntu/Debian sudo apt-get install libevent libevent-deve 自动下…

onlyoffice回调函数controller方式实现

原文同步自作者博客:https://www.daxueyiwu.com/post/706 springboot实现的onlyoffice协同编辑网盘项目可以去作者博客。 上代码: //新建报告GetMapping("report/createReport")public String CreatReport(HttpServletRequest request,Stri…

读Bilgin Ibryam 新作 《Dapr 是一种10倍数 平台》

Bilgin Ibryam 最近加入了开发者软件初创公司Diagrid Inc,他是Apache Software Foundation 的 committer 和成员。他也是一个开源的布道师,并且是书籍 Kubernetes设计模式 和 Camel Design Patterns 的作者。早在2020年初 提出的Multi-Runtime Microserv…

如何在iPhone或iPad上使用Safari下载文件

Khamosh PathakKhamosh PathakIn your work or personal life, you’ll sometimes need to download a file on your iPhone or iPad. Using the new feature introduced in iOS 13 and iPadOS 13, you can now do this directly in Safari. No third-party app needed! 在工作…

java版左右手桌面盯盘软件dstock V1.0

V1.0功能比较简陋,先满足自己桌面盯盘需要 V1.0 版本功能介绍: 1. 1s实时刷新盯盘数据 主要市面上的,符合我要求的桌面应用要VIP,穷啊,还是月月付,年年付,还是自己搞吧! 2. 配置文件配置股票…

放大倍数超5万倍的Memcached DDoS反射攻击,怎么破?

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 背景:Memcached攻击创造DDoS攻击流量纪录 近日,利用Memcached服务器实施反射DDoS攻击的事件呈大幅上升趋势。DDoS攻击流量首次过T,引发业界热…

C# WPF TabControl控件用法详解

概述TabControl我之前有讲过一节,内容详见:C# WPF TabControl用法指南(精品),上节主要讲解了tabcontrol控件的左右翻页,以及页面筛选,以及数据绑定等内容,这节内容继续接续上节内容进行扩展讲解&#xff0c…

pixel 解锁_如何在Google Pixel 4和Pixel 4 XL上禁用面部解锁

pixel 解锁Justin Duino贾斯汀杜伊诺(Justin Duino)Face Unlock is one of the Google Pixel 4 and Pixel 4 XL’s flagship features. But if the facial recognition is a form of biometric security you’re uncomfortable with, you can delete your face data right off …

【实战】将多个不规则多级表头的工作表合并为一个规范的一维表数据结果表...

最近在项目里,有个临时的小需求,需要将一些行列交叉结构的表格进行汇总合并,转换成规范的一维表数据结构进行后续的分析使用。从一开始想到的使用VBA拼接字符串方式,完成PowerQuery的M语言查询字符串,然后转换成使用插…

#if defined(__cplusplus)

由于C编译器需要支持函数的重载,会改变函数的名称,因此dll的导出函数通常是标准C定义的。这就使得C和C的互相调用变得很常见。但是有时可能又会直接用C来调用,不想重新写代码,让标准C编写的dll函数定义在C和C编译器下都能编译通过…

happiness[国家集训队2011(吴确)]

【试题来源】 2011中国国家集训队命题答辩【问题描述】 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一…

sketch怎么移动图层_什么是Photoshop Express,Fix,Mix和Sketch移动应用程序?

sketch怎么移动图层Adobe’s approach to mobile apps seems to be “The More, The Better”. Right now, there are five Photoshop branded apps available for iOS and Android. Adobe的移动应用程序方法似乎是“越多越好”。 目前,有五个适用于iOS和Android的P…

imessage_如何在iPhone和iPad上的iMessage组中提及某人

imessageKhamosh PathakKhamosh PathakSometimes, it’s difficult to get someone’s attention in a large iMessage group chat on your iPhone or iPad. However, if you mention that person specifically in a message, your friend will receive a notification about i…

点击右侧导航栏,实现iframe嵌入子页面中div,滑动到最上面

2019独角兽企业重金招聘Python工程师标准>>> // 点击对应的nav里的li标签,页面就滚动到哪里 $(.title-list > li).click(function(event) {$(this).addClass(active).siblings().removeClass(active);//li标签里面有a标签,可以阻止到a标签的默认行为event.preven…

wepack环境配置1之node的安装

.向往已久的webpack终于配好了.. 1.要安装webpack,首先需要安装nodejs nodejs下载地址:https://nodejs.org/en/ 下载完成后,一步步安装即可,我是安装到D盘 新建一个nodejs的文件夹,装到这个文件夹里面即可. 安装完毕后检查自己是否安装成功.启动cmd,然后输入npm -v,…

【赏析】.NET跨平台框架-Avalonia UI

这是Avalonia UI官方的一个Demo,站长对部分Nuget包进行了升级,网友【小飞机MLA】对Linux版本修复了字体Bug得以正常运行、演示:Windows 11:macOS 13:可安装Rider(EAP即要)开发,站长一…