小编use*_*011的帖子

为什么Windows中重复的内存分配会减慢?

我想了解为什么以下代码在我的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)

c++ windows

10
推荐指数
1
解决办法
1513
查看次数

标签 统计

c++ ×1

windows ×1