add benchmark

This commit is contained in:
Frank 2023-03-01 12:39:46 +08:00
parent e6ee860fd9
commit 86d76f154f

View File

@ -0,0 +1,49 @@
package benchmark
import (
"bytes"
"github.com/go-playground/assert/v2"
"testing"
)
func TestConcatStringByAdd(t *testing.T) {
elems := []string{"1", "2", "3", "4", "5"}
ret := ""
for _, elem := range elems {
ret += elem
}
assert.Equal(t, "12345", ret)
}
func TestConcatStringByBytesBuffer(t *testing.T) {
var buf bytes.Buffer
elems := []string{"1", "2", "3", "4", "5"}
for _, elem := range elems {
buf.WriteString(elem)
}
assert.Equal(t, "12345", buf.String())
}
func BenchmarkConcatStringByAdd(b *testing.B) {
b.ResetTimer()
elems := []string{"1", "2", "3", "4", "5"}
ret := ""
for i := 0; i < b.N; i++ {
for _, elem := range elems {
ret += elem
}
}
b.StopTimer()
}
func BenchmarkConcatStringByBytesBuffer(b *testing.B) {
b.ResetTimer()
elems := []string{"1", "2", "3", "4", "5"}
var buf bytes.Buffer
for i := 0; i < b.N; i++ {
for _, elem := range elems {
buf.WriteString(elem)
}
}
b.StopTimer()
}