2024-05-17 18:30:33 +08:00
|
|
|
// Copyright 2022 GoEdge goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
2022-11-19 15:55:05 +08:00
|
|
|
|
|
|
|
|
package utils_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils"
|
|
|
|
|
"strings"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestNewBufferPool(t *testing.T) {
|
|
|
|
|
var pool = utils.NewBufferPool()
|
|
|
|
|
var b = pool.Get()
|
|
|
|
|
b.WriteString("Hello, World")
|
|
|
|
|
t.Log(b.String())
|
|
|
|
|
|
|
|
|
|
pool.Put(b)
|
|
|
|
|
t.Log(b.String())
|
|
|
|
|
|
|
|
|
|
b = pool.Get()
|
|
|
|
|
t.Log(b.String())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func BenchmarkNewBufferPool1(b *testing.B) {
|
|
|
|
|
var data = []byte(strings.Repeat("Hello", 1024))
|
|
|
|
|
|
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
|
|
|
for pb.Next() {
|
|
|
|
|
var buffer = &bytes.Buffer{}
|
|
|
|
|
buffer.Write(data)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func BenchmarkNewBufferPool2(b *testing.B) {
|
|
|
|
|
var pool = utils.NewBufferPool()
|
|
|
|
|
var data = []byte(strings.Repeat("Hello", 1024))
|
|
|
|
|
|
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
|
|
|
for pb.Next() {
|
|
|
|
|
var buffer = pool.Get()
|
|
|
|
|
buffer.Write(data)
|
|
|
|
|
pool.Put(buffer)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
2024-04-12 08:41:14 +08:00
|
|
|
|
|
|
|
|
func BenchmarkNewBufferPool3(b *testing.B) {
|
|
|
|
|
var pool = utils.NewBufferPool()
|
|
|
|
|
var dataString = strings.Repeat("Hello", 1024)
|
|
|
|
|
|
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
|
|
|
for pb.Next() {
|
|
|
|
|
var buffer = pool.Get()
|
|
|
|
|
buffer.Write([]byte(dataString))
|
|
|
|
|
pool.Put(buffer)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func BenchmarkNewBufferPool4(b *testing.B) {
|
|
|
|
|
var pool = utils.NewBufferPool()
|
|
|
|
|
var dataString = strings.Repeat("Hello", 1024)
|
|
|
|
|
|
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
|
|
|
for pb.Next() {
|
|
|
|
|
var buffer = pool.Get()
|
|
|
|
|
buffer.WriteString(dataString)
|
|
|
|
|
pool.Put(buffer)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|