我正在嘗試找出有關(guān)性能的最佳實(shí)踐。我注意到為 for 循環(huán)指定整數(shù)類型可能會(huì)極大地影響性能(在我的例子中是 x2 倍)。我的問(wèn)題是,使用 int64 是否應(yīng)該比使用 int32 慢得多,或者我在代碼中遺漏了一些東西?我正在使用的代碼:前package mainimport ( "fmt" "time" "runtime" "strconv")func main() { start := time.Now() var x1 int // later change all int to int32 or int64 for i := int(0); i <= int(1000000000); i++ { x1 = x1 + i } t := time.Now() elapsed := t.Sub(start) fmt.Println(x1) fmt.Println(elapsed) fmt.Println(runtime.Compiler, runtime.GOARCH, runtime.GOOS) fmt.Println(strconv.IntSize)}使用 int32 作為 x1 的輸出C:\...>go build a.goC:\...>a-243309312238.3333msgc amd64 windows64使用 int64 作為 x1 的輸出C:\...>go build a.goC:\...>a500000000500000000467.7835msgc amd64 windows64
使用 int64 而不是 int32 時(shí),for 循環(huán)性能要慢得多
繁華開(kāi)滿天機(jī)
2023-08-07 16:37:39