From ac747bc9e0d10d0e837bb794de0d38b02ca3df42 Mon Sep 17 00:00:00 2001 From: fukua95 Date: Sun, 18 May 2025 01:04:36 +0800 Subject: [PATCH 1/3] chore: optimize function `ReplaceSpaces` Signed-off-by: fukua95 --- internal/util.go | 17 +---------------- internal/util_test.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/internal/util.go b/internal/util.go index cc1bff24e6..f77775ff40 100644 --- a/internal/util.go +++ b/internal/util.go @@ -49,22 +49,7 @@ func isLower(s string) bool { } func ReplaceSpaces(s string) string { - // Pre-allocate a builder with the same length as s to minimize allocations. - // This is a basic optimization; adjust the initial size based on your use case. - var builder strings.Builder - builder.Grow(len(s)) - - for _, char := range s { - if char == ' ' { - // Replace space with a hyphen. - builder.WriteRune('-') - } else { - // Copy the character as-is. - builder.WriteRune(char) - } - } - - return builder.String() + return strings.ReplaceAll(s, " ", "-") } func GetAddr(addr string) string { diff --git a/internal/util_test.go b/internal/util_test.go index 57f7f9fa15..0bc4664667 100644 --- a/internal/util_test.go +++ b/internal/util_test.go @@ -1,6 +1,7 @@ package internal import ( + "runtime" "strings" "testing" @@ -72,3 +73,36 @@ func TestGetAddr(t *testing.T) { Expect(GetAddr("127")).To(Equal("")) }) } + +func BenchmarkReplaceSpaces(b *testing.B) { + version := runtime.Version() + for i := 0; i < b.N; i++ { + _ = ReplaceSpaces(version) + } +} + +func ReplaceSpacesUseBuilder(s string) string { + // Pre-allocate a builder with the same length as s to minimize allocations. + // This is a basic optimization; adjust the initial size based on your use case. + var builder strings.Builder + builder.Grow(len(s)) + + for _, char := range s { + if char == ' ' { + // Replace space with a hyphen. + builder.WriteRune('-') + } else { + // Copy the character as-is. + builder.WriteRune(char) + } + } + + return builder.String() +} + +func BenchmarkReplaceSpacesUseBuilder(b *testing.B) { + version := runtime.Version() + for i := 0; i < b.N; i++ { + _ = ReplaceSpacesUseBuilder(version) + } +} From 2a723cf1b8c01d7283078e753ab52192146c9bca Mon Sep 17 00:00:00 2001 From: fukua95 Date: Sun, 18 May 2025 01:22:40 +0800 Subject: [PATCH 2/3] trigger CI again because the bug of docker Signed-off-by: fukua95 From 346e8177a5815d6f7d93cefa701efe2fd522e9c5 Mon Sep 17 00:00:00 2001 From: fukua95 Date: Sun, 18 May 2025 01:24:35 +0800 Subject: [PATCH 3/3] trigger CI again because the bug of docker Signed-off-by: fukua95