Merge pull request #5058 from ephesused/optimize-gvk-version

perf: optimize Gvk.ApiVersion()
This commit is contained in:
Kubernetes Prow Robot
2023-02-21 11:57:56 -08:00
committed by GitHub
2 changed files with 20 additions and 5 deletions

View File

@@ -122,13 +122,10 @@ func (x Gvk) stableSortString() string {
// ApiVersion returns the combination of Group and Version
func (x Gvk) ApiVersion() string {
var sb strings.Builder
if x.Group != "" {
sb.WriteString(x.Group)
sb.WriteString("/")
return x.Group + "/" + x.Version
}
sb.WriteString(x.Version)
return sb.String()
return x.Version
}
// StringWoEmptyField returns a string representation of the GVK. Non-exist

View File

@@ -4,6 +4,7 @@
package resid
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
@@ -129,6 +130,23 @@ func TestApiVersion(t *testing.T) {
}
}
func BenchmarkApiVersion(b *testing.B) {
for i, bench := range []Gvk{
{Kind: "k"},
{Version: "v", Kind: "k"},
{Group: "g", Kind: "k"},
{Group: "g", Version: "v"},
{Group: "g", Version: "v", Kind: "k"},
{Group: "bitnami.com", Version: "v1alpha1", Kind: "SealedSecret"},
} {
b.Run(fmt.Sprintf("%d", i), func(b *testing.B) {
for i := 0; i < b.N; i++ {
_ = bench.ApiVersion()
}
})
}
}
func TestStringWoEmptyField(t *testing.T) {
for _, hey := range stringTests {
assert.Equal(t, hey.r, hey.x.StringWoEmptyField())