gpt4 book ai didi

swift - Swift 中的数组/内存操作

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:47 24 4
gpt4 key购买 nike

亲爱的大家,

我正在 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 毫秒

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 毫秒。我真的不知道如何使用选项 III 执行此操作。

<强>3。更改值

新数组的值可以像这样(当然)改变:

array[13453] = 20

任何加速整个过程的建议,尤其是插入(第 2 部分),都非常受欢迎。实现可能使用数组……指针……是否满足要求真的无所谓。

我.

最佳答案

在测量期间开启优化 - Swift 的性能就是一切。

关于swift - Swift 中的数组/内存操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com