Go:如何使用 sync.Pool 提高性能
package main
import (
"fmt"
"sync"
)
// 使用 sync.Pool 来提高性能
func main() {
p := &sync.Pool{
New: func() interface{} {
// 这里返回初始化的数据结构
return []int{}
},
}
// 获取一个缓冲区
buffer := p.Get().([]int)
buffer = append(buffer, 1)
// 使用完后,将缓冲区放回池中
p.Put(buffer[:0])
// 打印出池中对象的数量
fmt.Println("池中对象的数量:", p.Len())
}
这段代码演示了如何使用Go标准库中的sync.Pool
来管理和复用缓冲区。通过定义一个新的sync.Pool
,并提供一个初始化函数来创建新的缓冲区,我们可以有效地重用这些缓冲区,从而减少内存分配和垃圾收集的压力,提高程序的性能。
评论已关闭