1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-17 16:12:42 +08:00
This commit is contained in:
2022-06-07 11:29:27 +08:00
parent 96d24dea42
commit 853b19fb02
2 changed files with 0 additions and 64 deletions

View File

@ -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:
}
}

View File

@ -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
}
})
}