【发布时间】:2016-03-20 22:35:08
【问题描述】:
例如,如果我有这样的代码
for i in 1 ... 10000 {
let someValue = 9
...
}
我应该将 let 值排除在循环之外,以便获得更好的性能还是完全没有必要?
autoreleasepool {
let someValue = 9
for i in 1 ... 10000 {
...
}
}
有什么想法吗?
【问题讨论】:
-
反问:为什么要把它放在循环体中?
-
@vikingosegundo 因为它只需要在那里。这也是我在其他代码中使用 autoreleasepool 的原因,因为我不想在其他范围内使用它。
-
autoreleasepool 对于范围界定来说是一个相当糟糕的主意。使用方法和隐式创建更小的范围。
-
它不仅与花费的时间有关。这是冤枉的,如果您始终使用相同的值,则无需每次分配内存。您在每个周期中分配和释放内存,如果您使用比 Int 更大的对象,则需要时间和内存。
标签: swift performance for-loop let