GCC v / s Visual studio运行时差异

时间:2012-12-27 17:46:33

标签: visual-c++ gcc

我为车辆路由项目编写了一个C ++代码。在我的戴尔笔记本电脑上,我安装了Ubuntu和Windows 7。当我在UNIX平台上的gcc编译器中运行我的代码时,它运行速度至少比Windows OS上的Visual C ++ 2010上完全相同的代码快10倍(两者都在同一台机器上)。这不只是针对一个特定的代码,事实证明,这种情况几乎发生在我使用的每个C ++代码中。

我假设有一个解释,运行时如此大的差异,以及为什么gcc out执行Visual C ++运行时明智。有人可以启发我这个吗?

感谢。

1 个答案:

答案 0 :(得分:0)

根据我的经验,两个编译器都相当平等,但您必须注意以下几点:  1. Visual Studio默认为堆栈检查,这意味着每个函数都以少量的“memset”开头,并以少量的“memcmp”结束。如果你想要性能,请关闭它 - 当你写入十元素数组的第11个元素时,它很适合捕获。  2. Visual Studio执行缓冲区溢出检查。同样,这可以为执行添加大量时间。

请参阅:Visual Studio Runtime Checks

我相信这些通常在调试模式下启用,但在发布版本中不启用,因此您应该从发布版本和gcc上的-O2或-O3优化版本获得类似的结果。

如果这没有帮助,那么也许你可以给我们一个小的(可编译的)例子和相应的时间。