.Net8的R2R(ReadyToRun)结构简析

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

R2R是介于JIT和AOT之间的一种技术,部分编译成本地机器码,部分通过JIT编译。R2R结构包括R2R头和R2R节数据,通过遍历节数据找到要执行的函数头的地址进行执行。JIT和AOT都使用R2R调用,以提高编译性能。

🎯

关键要点

  • R2R是一种介于JIT和AOT之间的技术,部分编译成本地机器码,部分通过JIT编译。
  • R2R结构包括R2R头和R2R节数据,通过遍历节数据找到要执行的函数头的地址进行执行。
  • 托管DLL的R2R入口在.Net目录,非托管Exe的R2R在C++引导程序的目标文件中。
  • R2R头包含固定字符、版本号、标志和节的个数等信息。
  • R2R节数据包含节的ID号、标志、起始地址和结束地址。
  • 通过R2R头和节数据的ID号,可以找到要执行的函数头的地址。
  • JIT和AOT都使用R2R调用,以提高编译性能。
🏷️

标签

➡️

继续阅读