mirror of
https://github.com/charlienet/go-mixed.git
synced 2025-07-18 00:22:41 +08:00
del
This commit is contained in:
@ -1,36 +0,0 @@
|
|||||||
package bytecache
|
|
||||||
|
|
||||||
type BytePool struct {
|
|
||||||
c chan []byte
|
|
||||||
w int
|
|
||||||
wcap int
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewBytePool(poolSize, size, cap int) *BytePool {
|
|
||||||
return &BytePool{
|
|
||||||
c: make(chan []byte, poolSize),
|
|
||||||
w: size,
|
|
||||||
wcap: cap,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bp *BytePool) Get() (b []byte) {
|
|
||||||
select {
|
|
||||||
case b = <-bp.c:
|
|
||||||
default:
|
|
||||||
if bp.wcap > 0 {
|
|
||||||
b = make([]byte, bp.w, bp.wcap)
|
|
||||||
} else {
|
|
||||||
b = make([]byte, bp.w)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bp *BytePool) Put(b []byte) {
|
|
||||||
select {
|
|
||||||
case bp.c <- b:
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
package bytecache
|
|
||||||
|
|
||||||
import "testing"
|
|
||||||
|
|
||||||
func TestByteCache(t *testing.T) {
|
|
||||||
bp := NewBytePool(512, 1024, 1024)
|
|
||||||
buffer := bp.Get()
|
|
||||||
defer bp.Put(buffer)
|
|
||||||
|
|
||||||
t.Log(len(buffer))
|
|
||||||
}
|
|
||||||
|
|
||||||
func BenchmarkByteCache(b *testing.B) {
|
|
||||||
bp := NewBytePool(512, 1024, 1024)
|
|
||||||
b.Run("aaaaa", func(b *testing.B) {
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
bp.Put(bp.Get())
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
b.Run("bbbb", func(b *testing.B) {
|
|
||||||
for i := 0; i < b.N; i++ {
|
|
||||||
a := make([]byte, 1024)
|
|
||||||
|
|
||||||
a[0] = 1
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
Reference in New Issue
Block a user