arrays - Swift:数组的初始容量、ReserveCapacity() 和避免重新分配
问题描述
假设我有这个:
var collection: Array<String> = []
Swift 分配后的初始容量是多少?collection
我有兴趣防止重新分配(这很昂贵)。我了解 Swift 自动重新分配容量的几何增长策略,因为我需要 Array 中的更多插槽。我也理解连续调用reserveCapacity()
而不是允许正常的几何增长的陷阱。
但是,如果初始容量是2
或其他一些较低的数字,并且我知道我将要添加 10 个项目collection
,那么从性能的角度来看,我是否会更好地服务于:
var collection: Array<String> = []
collection.reserveCapacity(10)
为了避免在我将项目附加到数组时重新分配4
、8
和项目?16
注意:在您告诉我不要担心它之前,因为性能差异非常小,这是一个人为的案例。实际上,我有数千个对象将具有一个collection
属性,每个collection
对象将包含大约 5-10 个项目,这些项目将逐步添加,并且在创建 Array 时不知道。可能涉及成千上万的重新分配。
解决方案
推荐阅读
- node.js - 如何在使用 Nest.js 的 Node 中分离客户端和服务器应用程序时获取用户的 IP 地址
- autofac - Hangfire Autofac - 定义注册的类构造器参数和队列作业
- javascript - 如何在反应中使用.on?
- installation - Mac安装和gcc49
- spring-integration - 我们如何对 spring 集成 xml 配置进行单元测试?
- tensorflow - 在拟合模型之外调用层结构时,参数值是否会更新?
- javascript - 更改元素的innerHTML,javascript最接近返回null
- html - 为什么 HTML 表格列宽不适用于固定布局和 100% 宽度?
- java - DB2 7.2 Java UDF 不在 Classpath 中
- loops - Stata从长到宽重塑