为什么编译速度在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