gpt4 book ai didi

go - sync.Pool 新函数中是否需要返回指针类型?

转载 作者:数据小太阳 更新时间:2023-10-29 03:30:51 25 4
gpt4 key购买 nike

我看到了 issue在 Github 上说 sync.Pool 应该与指针类型一起使用,例如:

var TPool = sync.Pool{
New: func() interface{} {
return new(T)
},
}

有意义吗? return T{} 怎么样,哪个是更好的选择,为什么?

最佳答案

sync.Pool 的全部意义在于避免(昂贵的)分配。大型缓冲区等。您分配一些缓冲区,它们保留在内存中,可供重用。因此使用指针。

但在这里,您将在每一步都复制值,从而违背了目的。 (假设您的 T 是一个“普通”结构,而不是像 SliceHeader 这样的东西)

关于go - sync.Pool 新函数中是否需要返回指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54179128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com