From 86d76f154f11bc4c73a087a3e2c840f726220129 Mon Sep 17 00:00:00 2001 From: frank <3224536684@qq.com> Date: Wed, 1 Mar 2023 12:39:46 +0800 Subject: [PATCH] :sparkles: add benchmark --- src/c27_benchmark/concat_string_test.go | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/c27_benchmark/concat_string_test.go diff --git a/src/c27_benchmark/concat_string_test.go b/src/c27_benchmark/concat_string_test.go new file mode 100644 index 0000000..c54d2c0 --- /dev/null +++ b/src/c27_benchmark/concat_string_test.go @@ -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() +}