func () test() {
for i := 0; i < 1000000000; i++ {
var (
v11, v12, v13, v21, v22, v23 float64
)
//...
//...
//...
}
}
這樣看似平常,但在每次loop都會進行記憶體分配與釋放,都是很花費cpu time。所以應調整成如下:
func () test() {
var (
v11, v12, v13, v21, v22, v23 float64
initVar = func() {
v11, v12, v13, v21, v22, v23 = 0, 0, 0, 0, 0, 0
}
)
for i := 0; i < 1000000000; i++ {
initVar()
//...
//...
//...
}
}
只有進loop時做宣告(配置)變數,而在每次loop開始將變數初始化
沒有留言:
張貼留言