【发布时间】:2014-08-09 19:17:04
【问题描述】:
这是一个普通的空循环,带有普通的增量运算符“i++”
import Foundation
let start = CFAbsoluteTimeGetCurrent()
for var i = 0; i < 1000000; i++ {
}
let timeTaken = CFAbsoluteTimeGetCurrent() - start
println(timeTaken) // 0.0229730010032654
但是这个“i = i + 1”的循环要快得多
import Foundation
let start = CFAbsoluteTimeGetCurrent()
for var i = 0; i < 1000000; i = i + 1 {
}
let timeTaken = CFAbsoluteTimeGetCurrent() - start
println(timeTaken) // 0.00384700298309326
第二个循环快 5 倍 - 6 倍
我知道 swift 仍处于测试阶段,我不会将它与其他语言进行比较,但这对我来说毫无意义
【问题讨论】:
-
预增量呢?这么慢吗?
-
听起来很有趣,但我正在等待有人在投票之前复制结果。
-
像这样测量时间是相当荒谬的。很多事情同时在你的电脑上进行。你开启优化了吗?您是否进行了多次测量?
-
@Ramon,为什么会这样?这个问题与改进工作代码无关。
-
i = i + 1不等于++i而不是i++?推荐使用++i。
标签: performance for-loop swift increment