我想了解为什么以下代码在我的linux和Windows 7机器上表现不同:在linux上,每次迭代需要大约120ms.在Windows 7上,第一次迭代需要0.4秒,后续迭代需要更长的时间.迭代8已经需要大约11秒,迭代22大约需要1分钟.
我在不同的硬件上观察到了这种行为 它似乎与windows有关.
#include <iostream>
#include <time.h>
#include <chrono>
void iteration() {
int n = 25000;
// Allocate memory
long** blocks = new long*[n];
for( int i = 0; i<n; ++i )
{
blocks[i] = new long[100008];
}
// Free all allocated memory
for( int i = 0; i<n; ++i )
{
delete[] blocks[i];
}
delete[] blocks;
}
int main(int argc, char **argv) {
int nbIter = 30;
for( int i = 0; i < nbIter; ++i ) …Run Code Online (Sandbox Code Playgroud)