使用GCC 4.2编译* .mm文件的速度非常慢,但LLVM做得非常好,有什么区别吗?

时间:2011-11-22 01:20:18

标签: gcc compilation llvm

我的项目是obj-c和C ++ hybirid,由* .m和* .mm填充。

编译时,如果选择GCC 4.2,* .m obj -c源文件编译速度非常快但* .mm非常慢,但LLVM 2.0可以做得很好,两者都非常快*。 m和* .mm。

我的问题: 在压缩* .mm文件期间,LLVM和GCC 4.2之间有什么区别吗?为什么GCC 3.2这么慢?

任何ieda或讨论将不胜感激,在此先感谢。

ENV:XCODE 4.0.1

3 个答案:

答案 0 :(得分:1)

  

在compliling期间LLVM和GCC 4.2之间是否有任何区别   * .mm文件?为什么GCC 3.2这么慢?

是;它们是完全不同的编译器;基本上关于过程的一切都是不同的,即使实际效果是相似的(你得到一个忠实再现源代码语义的可执行文件)。 LLVM的主要目标之一是提高编译速度。这是预期的。

如果您想了解LLVM的内部结构,here's是一个合理的起点。

答案 1 :(得分:0)

LLVM是一个更新的编译器,在过去的5年中设计和编写,而gnu编译器集合(gcc)已有20多年的历史,而且非常臃肿,但可以使用很多语言。 在非常罕见的情况下,gcc优化更好,但通常你应该只使用LLVM。

答案 2 :(得分:0)

海湾合作委员会确实很老,但仍在取得进展。我建议您比较最新版本,因此请使用GCC 4.6 (对比LLVM 2.9 )。您的 4.2 版本的GCC已有几年的历史了,自那以来GCC方面取得了很多进展。