为什么 C 语言仍然占据统治地位?( 七 )
与Java(以及某种程度上来说Python也是如此)一样 , .Net提供跨各种平台的可移植性和庞大的集成软件生态系统 。 考虑到.Net世界中有多少面向企业的开发 , 这些都是不小的优势 。 当您使用C#或任何其他.Net语言开发程序时 , 您可以使用为.Net运行时编写的大量工具和库 。
.NET另一个类似Java的优势是JIT优化 。 C#和.Net程序可以按照C语言提前编译 , 但它们主要由.Net运行时进行即时编译 , 并使用运行时信息进行优化 。 JIT编译允许对无法在C中执行的运行着的.Net程序进行各种就地优化 。
与C一样 , C#和.Net提供各种直接访问内存的机制 。 堆 , 栈和非托管系统内存都可以通过.Net API和对象访问 。 开发人员可以使用.Net中的unsafe模式来实现更高的性能 。
但这些都不是没有代价的 。 托管对象和unsafe对象不能被任意交换 , 并且它们之间的编组会降低性能 。 因此 , 要最大化.Net应用程序的性能需要将托管和非托管对象之间的变动保持在最低限度 。
如果您无法承担托管与非托管内存之间变动造成的性能损失 , 或者.Net运行时对于目标环境(例如 , 内核空间)来说是一个糟糕的选择 , 或者可能根本不可用 , 那么C就是你所需要的 。 与C#和.Net不同 , C被默认可以解锁对内存的访问权 。
推荐阅读
- 魔兽世界|魔兽TBC:为什么玩家期待跨区组队?降低组队难度,无需频繁换区
- 李儒|三国杀:为什么叫李儒时代的骄傲,他到底有什么好骄傲的?厉害吗
- 池子|“为什么优菈总是在让人始料未及的版本到来?我还没准备好呀!”
- fpx战队|为什么同样是S赛夺冠,FPX的热度,完全没法跟IG与EDG相比?
- 王者荣耀|王者荣耀为什么要出限定皮肤?看完你就明白了
- 手机游戏|CFHD:神秘组织为什么开发生化手雷呢?关键是为了赚更多钱
- 打野|王者荣耀:不管什么打野都出一件肉装,李白都出暴裂,为什么?
- 抖音|正在火热追我的富二代,在得知我生日后突然消失不见,到底为什么
- |为什么很多人都说剑圣JUGG是伪核,后期能力不行!
- steam|原神:常驻五星废弃率排名,为什么大家越来越在乎“强度”了