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

2022-05-04  本文已影响0人  wayyyy

最近做的对象存储,想着系统里面,存在大量的对象的构造,这里面涉及大量的对象的内存申请和释放。试着用 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

上一篇 下一篇

猜你喜欢

热点阅读