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