代码之家  ›  专栏  ›  技术社区  ›  Lucas

Mingw vs Visual Studio 2008输出代码质量[关闭]

  •  16
  • Lucas  · 技术社区  · 15 年前

    几天前有人告诉我,G++的最新版本比MSVC 2008生成“更好”的x86代码。基本上,完全优化的gcc比完全优化的msvc生成更快的应用程序。

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

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

    我想问一下明格,但如果你在香草海合会的经验在这里是有效的,也请随意分享。

    1 回复  |  直到 12 年前
        1
  •  5
  •   user180326    12 年前

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

    对我来说,VisualC++是非常快的。

    我主要是在Linux上用g++编译的。经过大量的调整,G++版本仍然是关于 10-15% 在同一硬件上(同一台物理机器,与Linux双引导)速度较慢。这是在搜索了几个小时的g++优化选项之后,这些选项实际上有所帮助。用默认优化编译G++比VisualC++更慢60%。

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

    另外,我还得到一个解释,那就是x86的寄存器非常少,而且G++不擅长分配它们。

    更新:

    要更全面地比较Microsoft和GNU编译器,请转到 this C compiler benchmark . 根据我如何阅读这些数字,32位的微软和GCC之间的差异是相当的,尽管GCC是通过配置文件引导优化(PGO)测试的,而微软没有(在VS Express中没有PGO)。

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