内存初始化/删除是如此耗时吗?

时间:2013-11-26 17:33:14

标签: c++ compiler-construction constructor initialization

我有一个小类Entity,其中包含一些int字段和字段,它是50个整数的二维数组。没什么特别的。

我生成了很多(数百万个这样的实体),每个实体都不同:数组不同,字段也不同。 令我惊讶的是,我发现它是>每次不创建新实体并且只重用现有而快速增加2倍,并将其设置为0 字段和数组。内存初始化/删除是如此耗时吗?

1 个答案:

答案 0 :(得分:5)

与对象的内存管理相关的开销。这可能会导致速度减慢。

了解最好的方法就是按照你的方式计时。<​​br/> 有时它不会打扰你,其他时候,你会对它非常敏感。

考虑哪个循环会更快:

while (/* not done */) {
    Ask system for memory
    Create object
    Write into object
    Destroy object
}

while (/* not done */) {
    Write into object
}