From 503c19aec34dd65d994a057ecfb8fce960e9ad5a Mon Sep 17 00:00:00 2001 From: allencloud Date: Fri, 5 May 2017 23:25:56 +0800 Subject: [PATCH] use make slice to store objects to improve efficiency Signed-off-by: allencloud --- pkg/kubelet/dockershim/docker_container.go | 2 +- pkg/kubelet/dockershim/docker_image.go | 2 +- pkg/kubelet/dockershim/docker_legacy.go | 4 ++-- pkg/kubelet/dockershim/docker_service.go | 2 +- pkg/kubelet/dockershim/helpers.go | 5 +++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/kubelet/dockershim/docker_container.go b/pkg/kubelet/dockershim/docker_container.go index aaf59f4207..39df15e485 100644 --- a/pkg/kubelet/dockershim/docker_container.go +++ b/pkg/kubelet/dockershim/docker_container.go @@ -350,7 +350,7 @@ func (ds *dockerService) ContainerStatus(containerID string) (*runtimeapi.Contai imageID := toPullableImageID(r.Image, ir) // Convert the mounts. - mounts := []*runtimeapi.Mount{} + mounts := make([]*runtimeapi.Mount, 0, len(r.Mounts)) for i := range r.Mounts { m := r.Mounts[i] readonly := !m.RW diff --git a/pkg/kubelet/dockershim/docker_image.go b/pkg/kubelet/dockershim/docker_image.go index df59a7df28..0ae0a94e77 100644 --- a/pkg/kubelet/dockershim/docker_image.go +++ b/pkg/kubelet/dockershim/docker_image.go @@ -40,7 +40,7 @@ func (ds *dockerService) ListImages(filter *runtimeapi.ImageFilter) ([]*runtimea return nil, err } - result := []*runtimeapi.Image{} + result := make([]*runtimeapi.Image, 0, len(images)) for _, i := range images { apiImage, err := imageToRuntimeAPIImage(&i) if err != nil { diff --git a/pkg/kubelet/dockershim/docker_legacy.go b/pkg/kubelet/dockershim/docker_legacy.go index c39890bcb5..7b8858f845 100644 --- a/pkg/kubelet/dockershim/docker_legacy.go +++ b/pkg/kubelet/dockershim/docker_legacy.go @@ -187,7 +187,7 @@ func (ds *dockerService) ListLegacyPodSandbox(filter *runtimeapi.PodSandboxFilte } // Convert docker containers to runtime api sandboxes. - result := []*runtimeapi.PodSandbox{} + result := make([]*runtimeapi.PodSandbox, 0, len(containers)) for i := range containers { c := containers[i] // Skip new containers with containerTypeLabelKey label. @@ -242,7 +242,7 @@ func (ds *dockerService) ListLegacyContainers(filter *runtimeapi.ContainerFilter } // Convert docker to runtime api containers. - result := []*runtimeapi.Container{} + result := make([]*runtimeapi.Container, 0, len(containers)) for i := range containers { c := containers[i] // Skip new containers with containerTypeLabelKey label. diff --git a/pkg/kubelet/dockershim/docker_service.go b/pkg/kubelet/dockershim/docker_service.go index 7ea60931f9..109eaa881f 100644 --- a/pkg/kubelet/dockershim/docker_service.go +++ b/pkg/kubelet/dockershim/docker_service.go @@ -335,7 +335,7 @@ func (ds *dockerService) GetPodPortMappings(podSandboxID string) ([]*hostport.Po } } - portMappings := []*hostport.PortMapping{} + portMappings := make([]*hostport.PortMapping, 0, len(checkpoint.Data.PortMappings)) for _, pm := range checkpoint.Data.PortMappings { proto := toAPIProtocol(*pm.Protocol) portMappings = append(portMappings, &hostport.PortMapping{ diff --git a/pkg/kubelet/dockershim/helpers.go b/pkg/kubelet/dockershim/helpers.go index 0927ad35b4..26f7c1874c 100644 --- a/pkg/kubelet/dockershim/helpers.go +++ b/pkg/kubelet/dockershim/helpers.go @@ -127,7 +127,8 @@ func extractLabels(input map[string]string) (map[string]string, map[string]strin // '::ro', if the path is read only, or // '::Z', if the volume requires SELinux // relabeling and the pod provides an SELinux label -func generateMountBindings(mounts []*runtimeapi.Mount) (result []string) { +func generateMountBindings(mounts []*runtimeapi.Mount) []string { + result := make([]string, 0, len(mounts)) for _, m := range mounts { bind := fmt.Sprintf("%s:%s", m.HostPath, m.ContainerPath) readOnly := m.Readonly @@ -147,7 +148,7 @@ func generateMountBindings(mounts []*runtimeapi.Mount) (result []string) { } result = append(result, bind) } - return + return result } func makePortsAndBindings(pm []*runtimeapi.PortMapping) (map[dockernat.Port]struct{}, map[dockernat.Port][]dockernat.PortBinding) {