diff --git a/weed/util/mem/slot_pool.go b/weed/util/mem/slot_pool.go index e6680d3cb..d5a55f23f 100644 --- a/weed/util/mem/slot_pool.go +++ b/weed/util/mem/slot_pool.go @@ -1,6 +1,10 @@ package mem -import "sync" +import ( + "github.com/chrislusf/seaweedfs/weed/glog" + "sync" + "sync/atomic" +) var pools []*sync.Pool @@ -34,11 +38,17 @@ func getSlotPool(size int) *sync.Pool { return pools[index] } +var total int64 + func Allocate(size int) []byte { + newVal := atomic.AddInt64(&total, 1) + glog.V(4).Infof("++> %d", newVal) slab := *getSlotPool(size).Get().(*[]byte) return slab[:size] } func Free(buf []byte) { + newVal := atomic.AddInt64(&total, -1) + glog.V(4).Infof("--> %d", newVal) getSlotPool(cap(buf)).Put(&buf) }