golang for 与 range 性能对比

108 阅读1分钟

for 与 range 性能简单对比

代码

package main

import (
	"fmt"
	"time"
)

func main() {
	start := time.Now() // 获取当前时间
	for i := range [1000000000]int{} {
		if i > 0 {
		}
	}
	elapsed := time.Since(start)
	fmt.Println("第1个函数执行完成耗时:", elapsed)

	for i := 0; i < 1000000000; i++ {
		if i > 0 {
		}
	}

	elapsed = time.Since(start)
	fmt.Println("第2个函数执行完成耗时:", elapsed)
}

测试结果

# 测试1
➜   go run main.go
第1个函数执行完成耗时: 400.154752ms
第2个函数执行完成耗时: 809.338192ms

# 测试2
➜   go run main.go
第1个函数执行完成耗时: 385.898571ms
第2个函数执行完成耗时: 772.104173ms

# 测试3
➜   go run main.go
第1个函数执行完成耗时: 386.143845ms
第2个函数执行完成耗时: 773.088066ms