-2

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

我假设对运行时的如此大差异以及为什么 gcc out 执行可视 C++ 运行时的原因有一个解释。有人可以启发我吗?

谢谢。

4

1 回答 1

0

根据我的经验,两个编译器是相当的,但是你必须注意一些事情: 1. Visual Studio 默认开启堆栈检查,这意味着每个函数都以少量的“memset”开始并以少量的“memcmp”。如果您想要性能,请关闭它 - 当您写入十元素数组的第 11 个元素时,它非常适合捕捉。2. Visual Studio 做缓冲区溢出检查。同样,这会增加执行的大量时间。

请参阅:Visual Studio 运行时检查

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

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

于 2012-12-29T21:52:42.583 回答