来自C#背景,我无从帮助,但我注意到C ++和C#代码的编译速度差别很大 - C#的编译速度非常快,但C ++相对较慢 - 非常慢,在事实。
为什么会这样?
答案 0 :(得分:2)
有两大原因:
C ++必须和#include
一起解析所有头文件(这意味着阅读文本文件并解释它们 - 包括模板 - 然后将它们扩展到你的代码中)而C#使用pre汇编DLL中的编译信息。
潜在的C ++优化方式比C#优化更具深远意义;他们很容易将C#吹出水面。 C#编译器从不内联函数调用(这是Just-In-Time编译器在CLR中的工作),但C ++编译器经常这样做,等等。 C ++编译器还必须在编译时为整个程序执行JIT的编译器(然后是一些!),所以它肯定更慢。
我会说最大的罪魁祸首是优化 - 尝试关闭编译器中的所有优化,并注意加速。