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

Dav*_*oba 6 performance for-loop increment swift

这是一个普通的空循环,带有一个正常的增量运算符"i ++"

import Foundation

let start = CFAbsoluteTimeGetCurrent()

for var i = 0; i < 1000000; i++ {

}

let timeTaken = CFAbsoluteTimeGetCurrent() - start

println(timeTaken) // 0.0229730010032654
Run Code Online (Sandbox Code Playgroud)

但是这个带有"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
Run Code Online (Sandbox Code Playgroud)

第二个循环速度提高了5到6倍

我知道swift仍处于测试阶段,我不会将其与其他语言进行比较,但这对我来说毫无意义

Chr*_*ich 1

这不是优化器问题吗?一个公平的测试世界

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

var i = 0
for j in 1..1000000 {
i = i + 1
}
Run Code Online (Sandbox Code Playgroud)