MinGW vs Visual Studio 2008输出代码质量

时间:2010-02-06 22:45:45

标签: c++ visual-studio performance gcc

几天前,我被告知g ++的最新版本比MSVC 2008产生“更好”的x86代码。基本上,具有完全优化的GCC比完全优化的MSVC产生更快的应用程序。

虽然说这个,如果是真的,在很大程度上取决于应用程序和使用的C ++代码(我正在为我的应用程序评估这个声明的过程),这当然是正确的,我想知道做什么别人想。

从本质上讲,在比较这两个编译器的输出时,您的个人经历是什么?

我在询问MinGW,但如果您对香草GCC的体验在某种程度上有效,请随时分享。

1 个答案:

答案 0 :(得分:5)

我的经验是编译我的C ++ JPEG-LS图像压缩项目。 http://charls.codeplex.com

对我来说,Visual C ++明显更快。

我主要用linux上的G ++编译它。经过大量的调整后,G ++版本在同一硬件上仍然大约 10-15%(同一台物理机,双启动为linux)。那是经过几个小时的搜索实际帮助的G ++优化选项。只需使用默认优化进行编译,G ++比Visual C ++慢60%。

我的项目可能有点典型,因为它不是C,而是C ++,需要编译器进行大量的内联。在两个编译器上,我强制执行内联。

另外,作为一个解释,x86的寄存器很少,并且G ++不擅长分配它们。

<强>更新

要对microsoft和gnu编译器进行更全面的比较,请转到this C compiler benchmark。 根据我如何阅读这些数字,微软和GCC之间32位的差异是相同的,虽然GCC是通过配置文件引导优化(PGO)测试而微软不是(VS Express中没有PGO)。

如果没有PGO,微软的32位速度更快。在64位上,GCC更快。英特尔仍然比任何一个平台都要快。