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

Bra*_* Ds 1 c++ compiler-construction constructor initialization

我有一个小类Entity,有一些int字段和字段,是50个整数的二维数组.没什么特别的.

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

Pra*_*mar 5

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

知道的最好方法是按照你的方式计时.
有时它不会打扰你,其他时候,你会对它非常敏感.

想想哪个循环会更快:

while (/* not done */) {
    Ask system for memory
    Create object
    Write into object
    Destroy object
}
Run Code Online (Sandbox Code Playgroud)

要么

while (/* not done */) {
    Write into object
}
Run Code Online (Sandbox Code Playgroud)