为什么释放缓慢?

Sib*_*sic 6 c++ memory-management set

我有一个问题,我无法在网上找到答案......

我有一个声明如下:

set<unsigned int> MySet
Run Code Online (Sandbox Code Playgroud)

我正在插入由mersenne twister生成的一百万个随机数.随机生成和插入非常快(大约一百万个数字),但释放速度非常慢(1分半钟).

为什么解除分配这么慢?我没有使用任何自定义析构函数.

Mar*_*ork 7

在发布模式下编译代码.

这样做有两件事.

  1. 它打开了绝对有帮助的优化.
  2. 此外,内存管理库对于调试和发布也是不同的.
    构建库的调试版本以允许调试并且它们维护额外的信息(例如标记解除分配的内存).所有这些额外的处理确实需要花费
    • 两个版本库的目标完全不同.发布版本绝对针对速度进行了优化,调试版本针对恢复和调试进行了优化.

请注意,此信息与DevStudio有关.