首页系统综合问题.Net 7 的 AOT 和 CLR有什么区别?

.Net 7 的 AOT 和 CLR有什么区别?

时间2022-11-26 02:15:03发布分享专员分类系统综合问题浏览79

楔子:

AOT和 CLR的区别是什么呢rundll32 exe是什么 ?

大部分人肯定会说,一个编译成本地机器码(Native Code),一个是JIT即时编译的结果rundll32 exe是什么 。

这么说,其实也对,但是不具体rundll32 exe是什么 。具体应该怎么看呢?

AOT

AOT实际上是为了静态编译做的一个变体,一直在不停的循环进化,它并不是.Net Core之后才有的,之前的.Net FrameWork也是有的rundll32 exe是什么 。

在windows上,AOT是通过ilc.exe来加载托管的DLL,然后把这个DLL编译成.Obj文件rundll32 exe是什么 。此后通过运行时也就是CLR来链接到这个.Obj文件,生成你最后看到的那个超大的Exe文件。

CLR

CLR的编译过程其实大家都清楚rundll32 exe是什么 ,具体如下:

源码 -》Rosyln(编译成托管DLL) -》CLR(加载DLLrundll32 exe是什么 ,并且调用RyuJit) -》RyuJit(编译成机器码)

区别

.Net 7 的 AOT 和 CLR有什么区别?

因为RyuJit是个即时的编译器,也就说你启动一个.Net程序之后,程序里面需要运行的数据就会加载到内存里面rundll32 exe是什么 。如果你把这个程序给关掉了,内存就会被清除,之前的数据完全不存在。所以叫做即时编译。

而AOT则不同,它会保存编译的结果,然后在调用的时候进行结果的跳转rundll32 exe是什么 。

注意了,AOT同样有CLR和GC,只不过它的CLR是通过Hostfxr来进行宿主调用的,而它的GC则是通过.Obj文件链接编译到了Exe里面rundll32 exe是什么 。

你同样的反编译它,依然可以看到托管的代码rundll32 exe是什么 。

结尾:

总体来说,AOT形成了一个独立的编译体系,有区别与目前的.Net 7 CLR rundll32 exe是什么 。

有人说微软以后可能会用AOT编译技术取代CLR,以微软的一贯尿性,还是极有可能的rundll32 exe是什么 。

到时候大家,可能又要使劲的学习啦rundll32 exe是什么 。

爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

NetAOTCLRNetCLRrundll32 exe是什么
虚拟语气的倒装用法小结 目前平板电脑的主要用途是什么?