美文网首页
go 利用 sync.pool 实现对象的复用

go 利用 sync.pool 实现对象的复用

作者: wayyyy | 来源:发表于2022-05-04 15:58 被阅读0次

最近做的对象存储,想着系统里面,存在大量的对象的构造,这里面涉及大量的对象的内存申请和释放。试着用 sync.Pool 来优化。

type Object struct {
    ObjectName string
    BucketName string
    Pool string
    OwnerId string
    Size int64
    ObjectId string
    LastModifiedTime time.Time
    //...
}

创建对象池:
只需要实现 New 函数即可。对象池中没有对象时,将会调用 New 函数创建。

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

Get:

object := ObjectPool.Get().(*Object)

Put:

studentPool.Put(object)

测试:
TODO

相关文章

网友评论

      本文标题:go 利用 sync.pool 实现对象的复用

      本文链接:https://www.haomeiwen.com/subject/ikjmyrtx.html