x64免费性能下降

Mau*_*eri 6 c++ heap free performance 64-bit

我有一个这样的类(假设所有malloc的成功)

class CMyClass
{
public:
  CMyClass()
  {
  lpData = malloc(128);
  };

  ~CMyClass()
  {
  free(lpData);
  };

public:
  LPVOID lpData;
};
Run Code Online (Sandbox Code Playgroud)

然后我执行这个:

CMyClass *lpList = new CMyClass[32768];

delete [] lpList;
Run Code Online (Sandbox Code Playgroud)

问题是在x86中代码运行良好且快速(在调试和发布版本中完成几毫秒)但在x64中删除调用大约需要15秒才能释放所有内存.

操作系统是Win7 x64.

提示将不胜感激.

此致,毛罗.

MSN*_*MSN 7

如果您通过调试器运行测试应用程序,则可能会遇到Windows调试堆的某些性能问题.添加_NO_DEBUG_HEAP=1到调试对象的环境设置(在Visual Studio 20xx下的项目属性 - >配置属性 - >调试 - >环境属性中),看看是否可以改善释放性能.