mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
add logging for memory allocation
This commit is contained in:
parent
9d0f58c329
commit
e71dcfb3a6
|
@ -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…
Reference in a new issue