发布于:2021-02-16 00:00:12
0
160
0
众所周知,通过plus运算符合并数组会导致编译过程花费更长的时间。但是执行时间呢?正如所料,获胜者只能是一个。
附加元素比合并数组快上百倍!这是真的!
我从附加一个元素并将基本数组与单个元素数组合并开始。结果是可比较的,但随后决定检查五个元素的数组。加号运算符看起来很酷,但是太小了。
假设repeatCount
等于10000。在大多数情况下,这种性能损失可能几乎是不明显的。但它仍然是最恼人的Swift问题之一,有时甚至会导致非常流行的编译器错误,即表达式太复杂,无法在合理的时间内解决。
另一方面,当您将两个数组合并到一个新数组中时,plus操作符非常有效。
let array1 = Array(stride(from: 1, to: 101, by: 1))
let array2 = Array(stride(from: 101, to: 201, by: 1))
_ = self.array1 + self.array2
// is just as fast as this
var newArray = Array(self.array1)
self.array2.forEach { element in
newArray.append(element)
}
PS:测试环境是Xcode 8.0(8A218a),iOS 10模拟器和Swift 3。
作者介绍