为什么编译速度在C ++和C#中有很大不同?

可能重复:
为什么C ++编译需要这么长时间?

从C#背景来看,我不禁注意到编译C ++和C#代码的速度差异很大--C#编译速度非常快,但C ++相对较慢 - 事实上非常慢。

这是为什么?


两大原因:

  • C ++必须去#include和解析所有头文件(这意味着读取文本文件并解释它们 - 包括模板 - 然后将它们直接展开到代码中),而C#在程序集DLL中使用预编译信息。

  • 潜在的C ++优化方式比C#优化方式更加深远; 他们很容易将C#吹出水面。 C#编译器从不内联函数调用(即CLR中即时编译器的工作),但C ++编译器经常这样做,等等。 C ++编译器还必须在编译时为整个程序执行JIT的编译器(然后是一些!),所以它肯定比较慢。

  • 我会说最大的罪魁祸首是优化 - 尝试关闭编译器中的所有优化,并注意加速。

    链接地址: http://www.djcxy.com/p/14967.html

    上一篇: Why Compilation Speed Differs a lot in C++ and C#?

    下一篇: visual studio 2012 compile times