Swift的原生Array类型内存效率低下吗?

时间:2015-02-28 17:48:22

标签: arrays swift dynamic capacity

我目前正在构建自己的动态数组类型,它也实现了reserveCapacity方法。由于我的数组类型动态调整了它的容量,我想知道Swift的Array类型中的行为如何。
它是否只是保留容量,直到下一次更改阵列的大小? - 不。 调用reserveCapacity函数时,它会保持数组的容量(或更多)永远(除非您调用removeAll)。
我发现这很奇怪,因为看起来空间效率很低,没有任何占用空间的分配空间。 但后来我想,这可能只是reserveCapacity应该起作用的方式 但后来我想知道斯威夫特的Array是否会缩小他们的体型 - 他们不会。

this如何理解?

我也注意到,容量在开始时呈指数级增长(2 -> 4 -> 8 -> ...),但当它达到64时,它会变得奇怪(64 -> 188 -> 388 -> ...),如here所示。他们为什么要这样做?

0 个答案:

没有答案