我正在尝试找出有关性能的最佳实践。我注意到为 for 循环指定整数类型可能会极大地影响性能(在我的例子中是 x2 倍)。
我的问题是,使用 int64 是否应该比使用 int32 慢得多,或者我在代码中遗漏了一些东西?
我正在使用的代码:
前
package main
import (
"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.go
C:\...>a
-243309312
238.3333ms
gc amd64 windows
64
使用 int64 作为 x1 的输出
C:\...>go build a.go
C:\...>a
500000000500000000
467.7835ms
gc amd64 windows
64
婷婷同学_
相关分类