C#之ILC和C++的CLR前者更快?
2023-03-07 09:09:15 时间
楔子
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和写目标文件的重任。
结尾
微软体系的技术更新,有点快。
相关文章
- PolarDB相关技术讲解|阿里云产品内容精选(四十)
- 网站空间一年多少钱?性价比高的云虚拟主机推荐
- 阿里云虚拟主机的地址在哪里看
- “零信任”防御云计算信任危机
- 阿里云独享虚拟主机能备案吗
- 不花钱零门槛、10分钟搭建自己的线上博客平台
- 阿里云虚拟主机安全吗
- 网络流行语出圈,微店旗下平台注册rua.top
- 阿里云 金秋上云季 来啦~
- 阿里的云虚拟主机可以备案吗
- 购买阿里云虚拟主机在哪备案吗
- 阿里云海外虚拟主机要备案么
- 阿里云虚拟主机需要备案么
- 平头哥芯片产品解读|阿里云产品内容精选(三十八)
- 阿里云怎么把网站传到虚拟主机上
- 【学习记录】《DeepLearning.ai》第七课:超参数调试、Batch正则化和程序框架
- 如何玩转“上云第一课”
- ECS初体验————大学生
- 如何简单使用ECS心得体会
- 阿里云短信验证出现签名不合法(不存在或被拉黑)