昆明门户网站,前端页面设计图,百度网站优化培训,做营销型网站用什么技术楔子ILC是C#写的#xff0c;CLR是C。.Net 7中#xff0c;为何微软执意用一个托管的模型去尝试取代非托管框架呢#xff1f;至少native code方面它是这么做的这个问题一直萦绕脑海。非托管和托管十年前出版的那本久负盛名的《CLR via C#》至今都是不可或缺的存在#xff0c;…楔子ILC是C#写的CLR是C。.Net 7中为何微软执意用一个托管的模型去尝试取代非托管框架呢至少native code方面它是这么做的这个问题一直萦绕脑海。非托管和托管十年前出版的那本久负盛名的《CLR via C#》至今都是不可或缺的存在它里面有句话说的是一些理由使我们相信未来的托管代码在执行效率上会比当前的非托管代码更优秀。大多数托管应用程序目前的性能已相当不错将来还有望进一步提升。而十年前的未来也就是现在。方面一要看快从结果方面看也就是托管函数运行的效率速度。ILC作为全员预编译比CLR便加载内存边编译遇到函数就编译是要快很多的。二从过程方面ILC的运行速度远不如C这种系统级语言来的更快。但是.Net本身是个托管的框架它负责的或者执行的是被JIT之后的结果。所以无论ILC过程多慢只要ILC的结果快于CLR运行的过程ILC依然比CLR快。结构谷歌有个golang语言它的runtime就是自举的也就是runtime用go语言写的。微软估计也想搞这种方向把.Net runtime搞成C#写的至少目前看来native code这块是实现了这点。那么将来微软的技术体系模型runtime这块大约只有托管dll和ILC这两项了。前者作为参数进行析构后者则承担了之前CLR和JIT的大部分工作。并且还承担了LLVM和写目标文件的重任。结尾微软体系的技术更新有点快。本文作者江湖评谈公众号同名