我有一些小型实体,其中包含一些 int 字段和 50 个 int 的二维数组字段。没什么特别的。
我生成了很多(数百万个这样的实体),每个实体都是不同的:数组不同,字段也不同。 令我惊讶的是,我发现不每次都创建新实体而只是重用现有实体并将其设置为 0 的速度要快 2 倍以上 字段和数组。内存初始化/删除这么耗时吗?
存在与对象的内存管理相关的开销。这可能会导致速度减慢。
了解的最好方法就是计时,就像您所做的那样。
有时它不会打扰你,有时你会对此非常敏感。
想想哪个循环会更快:
while (/* not done */) {
Ask system for memory
Create object
Write into object
Destroy object
}
或
while (/* not done */) {
Write into object
}