这是一个普通的空循环,带有一个正常的增量运算符“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仍处于测试版状态,我不会将其与其他语言进行比较,但这对我来说毫无意义
答案 0 :(得分:1)
不是优化器问题吗?一个公平的考验世界
var i = 0
for j in 1..1000000 {
i++
}
var i = 0
for j in 1..1000000 {
i = i + 1
}