【发布时间】:2009-07-14 20:53:47
【问题描述】:
我很好奇 Windows 和 Linux 如何使用 C++ 程序进行内存管理。
之所以好奇是因为我刚刚用 C++ 编写了 3 个非常简单的程序,可以在 Linux 和 Windows 之间移植。代码完全相同。硬件也是。但结果却大不相同!两次测试重复10次,然后计算算术平均值。
我已经在静态整数数组、类向量和堆栈(使用指针)上测试了顺序插入。插入总数为 10^6。
Windows XP SP2 x86 结果: 静态整数数组:56 ms 类向量:686 毫秒 堆栈(带指针):2193 毫秒
Slackware 11 x86 结果: 静态整数数组:100 ms 类向量:476 毫秒 堆栈(带指针):505 毫秒
Windows 和 Slax 上的堆栈插入时间之间的速度差异令人印象深刻。这些结果看起来正常吗?这两个代码都是使用 G++(Windows 上的 mingw32-g++)编译的。
使用的计算机是双核 3.2Ghz 和 4GB RAM,在进行测试时,有超过 2GB 的可用 RAM。
【问题讨论】:
-
这不是问题。 (提示:问题通常以问号“?”结尾)。
-
我认为问题是 - 为什么它们如此不同?
-
“这些结果看起来正常吗?”符合条件?
-
我认为我们可以稍微松懈一下并推断“堆栈(带指针)的显着差异是如何产生的?”
-
@Eric Petroelje,jmanning2k,djna 是的,这是我的问题。很抱歉没有让它更客观。