哪种for循环更快
以前我写for loop的时候,其实是有点犹豫的,初始条件中对容器长度的求解,会不会每次迭代都会求一次呢?
可以发现之所以第二种循环稍微快一点点是因为提前讲sample
的长度求了出来,所以获得了非常微弱的优势,也证明了
for loop循环的时候,len(sample)是不需要每次都计算的,相当于是有一个中间变量把len(sample)的值寄存起来了
package main
import (
"fmt"
"time"
)
func main() {
sample := [100000000]int{}
size := len(sample)
start := time.Now().UnixNano()
for i := 0; i < len(sample); i++ {
sample[i] = i
}
end := time.Now().Unix()
fmt.Println(end - start)
start = time.Now().UnixNano()
for i := 0; i < size; i++ {
sample[i] = i
}
end = time.Now().Unix()
fmt.Println(end - start)
// 输出结果
// -1565705595811116303
// -1565705596100111903
}