【发布时间】:2018-03-14 02:22:12
【问题描述】:
我在 Playground 中测试了我的代码,但正如讨论所指出的那样,Playground 是调试配置,一旦我将所有这些代码放入真正的应用程序运行中,它们并没有太大的区别。以前不知道这个调试/发布的事情。
Swift 性能相关问题,我需要遍历图片的像素偏移量,首先我是这样尝试的。
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
}
但是很慢,我搜了一下发现有一段代码sn-p loop through offset这种方式:
func p2() -> [[Int]]{
return (0..<height).map{ row in
(0..<width).map { col in
let offset = width * row + col
return offset
}
}
}
所以我测试了如果我使用函数 p1 和 p2 循环通过 height = 128 和 width = 128 image , p1 比 p2 慢 18 倍,为什么 p1 与 p2 相比如此慢?我也想知道这个任务还有其他更快的方法吗?
【问题讨论】:
标签: arrays swift performance for-loop map-function