为什么gcc 4.9(trunk)这么慢?

时间:2014-01-09 19:24:04

标签: c++ linux c++11 clang gcc4.9

我使用这些标志从svn构建了一个最新的香草GCC:

../configure \  
    --enable-languages=c,c++ \  
    --disable-nls \  
    --enable-multilib \  
    --prefix=/opt/other/gcc-svn \  
    --program-suffix=-svn \  
    --with-system-zlib

首先是clang 3.4,然后我认为这可能是铿锵的错(带着一丝盐)并且重建了GCC一次 更多使用GCC 4.8.1,这导致了完全相同的结果。

当我尝试用大约编译C ++项目时,得到的GCC 比GCC 4.8.1 慢约17秒。 150k行代码。

这些是我获得的构建次(-O3):

  • g++ 4.9:48秒
  • g++ 4.8:31秒
  • clang 3.4:13秒

我是否错过configure旗帜或GCC 4.9真的那么慢?!

1 个答案:

答案 0 :(得分:29)

如果编译器比预期慢,传递-ftime-report标志有助于弄清楚发生了什么。

幸运的是,在这种情况下它也有所帮助:用-ftime-report GCC打印

  

'启用了额外的诊断检查;编译器可能运行缓慢。   配置--enable-checking = release以禁用检查。'

Thomas相应地从源代码重建了编译器,问题就消失了!