【发布时间】:2015-03-19 17:01:08
【问题描述】:
当我使用类似的优化设置在 GCC(使用 MinGW)和 MSVC(使用 Visual Studio)中编译一个大型项目(例如比特币)时,GCC 二进制文件为 6 mb,MSVC 二进制文件为 4 mb。
现在我想知道,这是否表示 MSVC 可以生成更好的二进制文件(我的意思是更好,因为更小+更快)?或者这不意味着什么,它只是符号信息或与性能无关的东西?
我希望有很多 cmets:只需对它进行基准测试。但我更感兴趣的是差异的原因,而不是确切的尺寸/性能差异本身。
【问题讨论】:
-
随着 CPU 缓存大小的不断增加,允许更积极的内联和循环展开优化,比较毫比特并不是衡量成功的标准。正确记录您的问题,至少发布编译命令行,以便我们查看您使用的选项。
-
@HansPassant 生成的二进制文件中 33% 的差异远远超过了毫比特。我只是想知道 GCC 生成的汇编代码是否质量差,而不是它们的性能是否相同。另请参阅,OpenUserX03 的答案不仅仅是我的想象。
-
@Muis:Hans 是对的,您需要发布编译器设置。当您认为它们具有可比性时,您可能错过了一些东西。另外,运行时库是静态链接的还是您使用的是 DLL?
标签: visual-c++ gcc mingw compiler-optimization