山东网站建站系统平台,wordpress慢 google,怎样把自己的网站上传,常德网站建设 天维楔子#xff1a;这个新编译器的全称是ILCompiler。是之前CoreRT项目合并过来的#xff0c;在.Net 7成熟#xff0c;并且可以产业化应用。本质#xff1a;ILC编译器的本质除了构建CLR的所拥有的主要功能#xff0c;还包含了对LLVM这种意图取代GCC编译器的操作#xff0c;对…楔子这个新编译器的全称是ILCompiler。是之前CoreRT项目合并过来的在.Net 7成熟并且可以产业化应用。本质ILC编译器的本质除了构建CLR的所拥有的主要功能还包含了对LLVM这种意图取代GCC编译器的操作对于LLVM主要是用来WinLinux,Macos三种不同的操作系统的目标文件而所做的封装。一.CLR的主要功能1.构建内存模型比如MethodTable,EEClassMethodDesc,MethodDescThunk等等。2.调用RyuJIT即时编译器3.GC垃圾回收ILC编译器包含了CLR主要功能的前面两项第三项则通过不同平台的连接器把GC操作函数链接到各个平台的可执行文件上。二.针对LLVM的封装最主要的一个针对LLVM的封装就是编译各个平台的不同目标文件,比如Windows PELinux ELF和macOS Mach-O文件格式。它的主要封装目标名称在win下面是ObjWriter.dllLinux下面为libobjwriter.so。要点ILC全部为C#代码写的对于需要用到的底层库直接DllImport比如写入段的ObjWriter.dll的SetCodeSectionAttribute比如编译机器码JitSupportLibraryjitinterface.dll的JitCompileMethod功能ILC的主要功能大致由3个部分组成编译脚本代码、调用JIT代码生成后端。分开来看1.编译脚本代码dotnet publish -r win-x64 -c release在ILC里面被识别并且包含各种需要的引用库运行库文件。为后续准备2.调用即时编译器JIT,根据前面的编译脚本代码的参数以及函数功能等进行机器码编译。3.返回JIT编译的机器码生成各个平台目标文件和可执行的文件。结尾如果想要了解.Net 7以后的发展这个ILC恐怕绕不过去。它隐有与CLR分庭抗礼之势。