Swift中的数组/内存操作

时间:2016-08-01 20:18:49

标签: swift

亲爱的,

我正在寻找Swift的快速解决方案来进行内存管理。我的意思是什么?我需要初始化一个数组(或缓冲区),例如1000000字节,填充零(0)并插入另一个数组(或内存缓冲区)中的给定位置。然后我必须有一个快速的方法来改变每个元素的值。如何在Swift中完成?这是阵列版本:

1。初始化新阵列 - 有三种方法可以做到这一点。我测量了每种方法连续10次执行的时间:

选项I - 时间:1.38毫秒

let tmp = Array<Int8>(count: 1000000, repeatedValue: 0)

选项II - 时间:385.54毫秒

let tmp = Array<Int8>(Repeat(count: 1000000, repeatedValue: 0))

选项III - 时间:586.43 ms

let ptr = UnsafeMutablePointer<Int8>.alloc(1000000)
ptr.initializeFrom(Repeat(count: 1000000, repeatedValue: 0))

选项II和III是从Airspeed Velocity借来的。我想利用这个机会并感谢他共同创作这么好的书; - )

2。将新数组插入位置“x”

的其他数组中

对于选项I和II,我使用以下内容:

array.insertContentsOf(tmp, at: x)

单个此类操作所需的时间(无论'x'的值)为654.19 ms。我真的不知道如何用选项III做到这一点。

第3。更改值

新数组的值可以改变(当然),如下所示:

array[13453] = 20

任何加速整个过程的建议,特别是插入(第2部分),都受到欢迎。实现可能使用数组......指针......如果满足要求,这无关紧要。

1 个答案:

答案 0 :(得分:1)

在测量过程中启用优化 - Swift的性能就是它的全部。