for循环:为什么i ++比swift中的i = i + 1慢

时间:2014-06-19 09:37:41

标签: performance for-loop swift increment

这是一个普通的空循环,带有一个正常的增量运算符“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仍处于测试版状态,我不会将其与其他语言进行比较,但这对我来说毫无意义

1 个答案:

答案 0 :(得分:1)

不是优化器问题吗?一个公平的考验世界

var i = 0
for j in 1..1000000 {
i++
}

var i = 0
for j in 1..1000000 {
i = i + 1
}