当前位置:  开发笔记 > 编程语言 > 正文

为什么C#的编译速度比C++快得多?

如何解决《为什么C#的编译速度比C++快得多?》经验,为你挑选了2个好方法。

我注意到在同一台机器上,C#的编译时间远远少于C++.为什么?

注1:我没有做过任何科学基准.

注意2:在有人说这与编程无关之前,我正在实现一个解析器,我发现我可以从get get中做些什么来提高编译速度.

注3:我有一个类似的问题为什么汇编需要这么长时间?.这个问题询问了从C/C++到C#的具体差异.很明显,简单的语言编译比复杂的语言更快,但C和C#都是复杂的语言.

我的内容:1)C/C++从预处理器和头文件中缓慢.2)很多标头会导致更多的数据被解析.特别是当每个文件都可以使用预处理器时可以更改代码3)C#推迟一些编译到程序启动4)IL指令很简单,机器不是



1> Stormenet..:

看一下这篇文章:为什么C++编译需要这么长时间?



2> Bevan..:

需要考虑两个独立的问题 - 处理阶段的数量以及定位的复杂性.

典型的C++编译涉及许多阶段(尽管这些阶段可以并发运行),其中预处理器处理指令和宏,然后C++编译器本身处理生成的代码.预处理器生成明显更大的输出,所有需要由实际编译器解析和处理的代码是很常见的.

此外,请记住,C++编译器将针对x86或x64机器语言 - 预先处理所有优化,并尝试充分利用在OO样式开发时未真正优化的硬件.

相比之下,C#编译器的目标是微软中间语言(MSIL),这是一个更高级别的机器代码平台,旨在用于OO开发.C#提供的许多构造都直接映射到IL指令,使编译变得非常简单.优化和其他活动的公平推迟推迟到实际程序启动,此时它针对确切的可用机器进行了优化.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有