Browse Source

add logging for memory allocation

pull/2613/head
chrislu 3 years ago
parent
commit
e71dcfb3a6
  1. 12
      weed/util/mem/slot_pool.go

12
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)
}
Loading…
Cancel
Save