From d7bc8694beb6a8393a044cb6574a79b6bb944927 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Fri, 23 Jun 2023 13:05:24 +0200 Subject: [PATCH] pkg/cri: replace some fmt.Sprintfs with strconv Teeny-tiny optimizations: BenchmarkSprintf-10 37735996 32.31 ns/op 0 B/op 0 allocs/op BenchmarkItoa-10 591945836 2.031 ns/op 0 B/op 0 allocs/op BenchmarkFormatUint-10 593701444 2.014 ns/op 0 B/op 0 allocs/op Signed-off-by: Sebastiaan van Stijn --- pkg/cri/sbserver/container_create_windows.go | 5 ++--- pkg/cri/sbserver/helpers.go | 18 +++++++++--------- pkg/cri/server/container_create_windows.go | 4 +--- pkg/cri/server/helpers.go | 12 ++++++------ pkg/cri/streaming/remotecommand/exec.go | 3 ++- 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/pkg/cri/sbserver/container_create_windows.go b/pkg/cri/sbserver/container_create_windows.go index 7ab18a5aa4..9beb2a44a1 100644 --- a/pkg/cri/sbserver/container_create_windows.go +++ b/pkg/cri/sbserver/container_create_windows.go @@ -17,7 +17,7 @@ package sbserver import ( - "fmt" + "strconv" imagespec "github.com/opencontainers/image-spec/specs-go/v1" runtime "k8s.io/cri-api/pkg/apis/runtime/v1" @@ -39,9 +39,8 @@ func snapshotterOpts(snapshotterName string, config *runtime.ContainerConfig) ([ case "windows": rootfsSize := config.GetWindows().GetResources().GetRootfsSizeInBytes() if rootfsSize != 0 { - sizeStr := fmt.Sprintf("%d", rootfsSize) labels := map[string]string{ - "containerd.io/snapshot/windows/rootfs.sizebytes": sizeStr, + "containerd.io/snapshot/windows/rootfs.sizebytes": strconv.FormatInt(rootfsSize, 10), } opts = append(opts, snapshots.WithLabels(labels)) } diff --git a/pkg/cri/sbserver/helpers.go b/pkg/cri/sbserver/helpers.go index 5adcbc28d4..44b5141cb6 100644 --- a/pkg/cri/sbserver/helpers.go +++ b/pkg/cri/sbserver/helpers.go @@ -135,10 +135,10 @@ func (c *criService) getSandboxDevShm(id string) string { // generated is unique as long as sandbox metadata is unique. func makeSandboxName(s *runtime.PodSandboxMetadata) string { return strings.Join([]string{ - s.Name, // 0 - s.Namespace, // 1 - s.Uid, // 2 - fmt.Sprintf("%d", s.Attempt), // 3 + s.Name, // 0 + s.Namespace, // 1 + s.Uid, // 2 + strconv.FormatUint(uint64(s.Attempt), 10), // 3 }, nameDelimiter) } @@ -147,11 +147,11 @@ func makeSandboxName(s *runtime.PodSandboxMetadata) string { // unique. func makeContainerName(c *runtime.ContainerMetadata, s *runtime.PodSandboxMetadata) string { return strings.Join([]string{ - c.Name, // 0: container name - s.Name, // 1: pod name - s.Namespace, // 2: pod namespace - s.Uid, // 3: pod uid - fmt.Sprintf("%d", c.Attempt), // 4: attempt number of creating the container + c.Name, // 0: container name + s.Name, // 1: pod name + s.Namespace, // 2: pod namespace + s.Uid, // 3: pod uid + strconv.FormatUint(uint64(s.Attempt), 10), // 4: attempt number of creating the container }, nameDelimiter) } diff --git a/pkg/cri/server/container_create_windows.go b/pkg/cri/server/container_create_windows.go index 6b3a74c789..ec253bcb12 100644 --- a/pkg/cri/server/container_create_windows.go +++ b/pkg/cri/server/container_create_windows.go @@ -18,7 +18,6 @@ package server import ( "errors" - "fmt" "strconv" imagespec "github.com/opencontainers/image-spec/specs-go/v1" @@ -147,9 +146,8 @@ func snapshotterOpts(snapshotterName string, config *runtime.ContainerConfig) ([ case "windows": rootfsSize := config.GetWindows().GetResources().GetRootfsSizeInBytes() if rootfsSize != 0 { - sizeStr := fmt.Sprintf("%d", rootfsSize) labels := map[string]string{ - "containerd.io/snapshot/windows/rootfs.sizebytes": sizeStr, + "containerd.io/snapshot/windows/rootfs.sizebytes": strconv.FormatInt(rootfsSize, 10), } opts = append(opts, snapshots.WithLabels(labels)) } diff --git a/pkg/cri/server/helpers.go b/pkg/cri/server/helpers.go index 1f5e5cd536..c72e253769 100644 --- a/pkg/cri/server/helpers.go +++ b/pkg/cri/server/helpers.go @@ -99,7 +99,7 @@ func makeSandboxName(s *runtime.PodSandboxMetadata) string { s.Name, // 0 s.Namespace, // 1 s.Uid, // 2 - fmt.Sprintf("%d", s.Attempt), // 3 + strconv.Itoa(int(s.Attempt)), // 3 }, nameDelimiter) } @@ -108,11 +108,11 @@ func makeSandboxName(s *runtime.PodSandboxMetadata) string { // unique. func makeContainerName(c *runtime.ContainerMetadata, s *runtime.PodSandboxMetadata) string { return strings.Join([]string{ - c.Name, // 0: container name - s.Name, // 1: pod name - s.Namespace, // 2: pod namespace - s.Uid, // 3: pod uid - fmt.Sprintf("%d", c.Attempt), // 4: attempt number of creating the container + c.Name, // 0: container name + s.Name, // 1: pod name + s.Namespace, // 2: pod namespace + s.Uid, // 3: pod uid + strconv.FormatUint(uint64(s.Attempt), 10), // 4: attempt number of creating the container }, nameDelimiter) } diff --git a/pkg/cri/streaming/remotecommand/exec.go b/pkg/cri/streaming/remotecommand/exec.go index 5111521bae..1a3febe1be 100644 --- a/pkg/cri/streaming/remotecommand/exec.go +++ b/pkg/cri/streaming/remotecommand/exec.go @@ -36,6 +36,7 @@ import ( "fmt" "io" "net/http" + "strconv" "time" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -76,7 +77,7 @@ func ServeExec(w http.ResponseWriter, req *http.Request, executor Executor, podN Causes: []metav1.StatusCause{ { Type: remotecommandconsts.ExitCodeCauseType, - Message: fmt.Sprintf("%d", rc), + Message: strconv.Itoa(rc), }, }, },