精英盒子 -> 程序设计 -> 为什么C++的编译速度远远慢于其他语言 [打印本页]

jybox 2011-11-13 15:44

为什么C++的编译速度远远慢于其他语言

每个编译单元都要引入成百上千的头文件,许多时间都花在处理它们上了
目标文件需要被链接为一个单片的可执行映像,这一过程很难被并行
C++的语法太难以解析了,上下文依赖严重与消歧义的困难使得解析时间大大增加
模板:不同的特化版本需要分别编译
优化:模板元编程产生的一大堆中间产物要么被内联,要么被砍掉。(这和上一点有点重复?)
机器码:C++被编译成机器码,而直接面对CPU复杂的指令集比面对相对简单的IL要尴尬得多

总之C++太复杂了,语法灵活(模版、重载)

whtsky 2011-11-13 17:29
c++11又加了不少新东西…

jybox 2011-11-13 17:43
whtsky:c++11又加了不少新东西… (2011-11-13 17:29) 

没研究....

whtsky 2011-11-13 17:58
第2楼jybox于2011-11-13 17:43发表的 回 1楼(whtsky) 的帖子 的帖子
whtsky:c++11又加了不少新东西… (2011-11-13 17:29) [url=http://jybox.net/bbs/job.php?action=top ..
现在标准已经1000+页了…

jybox 2011-11-13 21:15
whtsky:现在标准已经1000+页了… (2011-11-13 17:58) 

还没看过.....

whtsky 2011-11-14 00:06
我是特别怕这种又大又复杂的东西…

jybox 2012-06-18 23:40
whtsky:c++11又加了不少新东西… (2011-11-13 17:29) 

现在看起来确实...

padme0amidala 2012-06-19 13:54
jybox:现在看起来确实... (2012-06-18 23:40) 

不是移除了一些特性嘛。。。神马模版分离编译。。。

jybox 2012-06-19 18:45
padme0amidala:不是移除了一些特性嘛。。。神马模版分离编译。。。 (2012-06-19 13:54) 

肿么会移除特征呢.....要保证向下兼容啊

我知道的被移除的也只有auto关键字的原有语义....




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.041358 second(s),query:5 Gzip enabled