types/model: reduce Name.Filepath allocs from 5 to 2 (#4039)
This commit is contained in:
parent
0a7fdbe533
commit
588901f449
2 changed files with 21 additions and 6 deletions
|
@ -231,12 +231,12 @@ func (n Name) Filepath() string {
|
||||||
if !n.IsFullyQualified() {
|
if !n.IsFullyQualified() {
|
||||||
panic("illegal attempt to get filepath of invalid name")
|
panic("illegal attempt to get filepath of invalid name")
|
||||||
}
|
}
|
||||||
return filepath.Join(
|
return strings.ToLower(filepath.Join(
|
||||||
strings.ToLower(n.Host),
|
n.Host,
|
||||||
strings.ToLower(n.Namespace),
|
n.Namespace,
|
||||||
strings.ToLower(n.Model),
|
n.Model,
|
||||||
strings.ToLower(n.Tag),
|
n.Tag,
|
||||||
)
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
// LogValue returns a slog.Value that represents the name as a string.
|
// LogValue returns a slog.Value that represents the name as a string.
|
||||||
|
|
|
@ -2,6 +2,7 @@ package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -217,6 +218,20 @@ func TestNameIsValidPart(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFilepathAllocs(t *testing.T) {
|
||||||
|
n := ParseNameBare("HOST/NAMESPACE/MODEL:TAG")
|
||||||
|
allocs := testing.AllocsPerRun(1000, func() {
|
||||||
|
n.Filepath()
|
||||||
|
})
|
||||||
|
allowedAllocs := 2.0
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
allowedAllocs = 4
|
||||||
|
}
|
||||||
|
if allocs > allowedAllocs {
|
||||||
|
t.Errorf("allocs = %v; allowed %v", allocs, allowedAllocs)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func FuzzName(f *testing.F) {
|
func FuzzName(f *testing.F) {
|
||||||
for s := range testCases {
|
for s := range testCases {
|
||||||
f.Add(s)
|
f.Add(s)
|
||||||
|
|
Loading…
Reference in a new issue