我在Playground测试了我的代码,但正如讨论中指出的那样,Playground是调试配置,一旦我把所有这些代码放在真正的应用程序中运行,它们就不会有太大的差别。以前不知道这个调试/发布的事情。
func p1() -> [[Int]]{
var offsets = [[Int]]()
for row in 0..<height {
var rowOffset = [Int]()
for col in 0..<width {
let offset = width * row + col
rowOffset.append(offset)
}
offsets.append(rowOffset)
}
return offsets
}
但速度很慢,我用这种方法搜索并找到了一些代码片段循环:
func p2() -> [[Int]]{
return (0..<height).map{ row in
(0..<width).map { col in
let offset = width * row + col
return offset
}
}
}
所以我测试了如果我使用函数p1和p2在高度=128和宽度=128的图像中循环,p1比p2慢18倍,为什么p1比p2慢?此外,我想知道还有其他更快的方法来完成这项任务吗?