From 7c0b432c2993957349dfd428da1adc732298d252 Mon Sep 17 00:00:00 2001 From: andersendsa <199610634+andersendsa@users.noreply.github.com> Date: Sat, 6 Jun 2026 15:46:22 +0000 Subject: [PATCH] Optimize `bufio.NewScanner` with `bytes.NewReader` Replaced `strings.NewReader(string(bytes))` with `bytes.NewReader(bytes)` for initializing `bufio.NewScanner`. This avoids allocating and copying `[]byte` into a `string` before reading, which reduces memory usage and garbage collection overhead. --- platform-manageability-agent/internal/comms/comms.go | 3 ++- platform-update-agent/internal/utils/os_detection.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/platform-manageability-agent/internal/comms/comms.go b/platform-manageability-agent/internal/comms/comms.go index bd105636..0927b8c1 100644 --- a/platform-manageability-agent/internal/comms/comms.go +++ b/platform-manageability-agent/internal/comms/comms.go @@ -5,6 +5,7 @@ package comms import ( "bufio" + "bytes" "context" "crypto/tls" "errors" @@ -142,7 +143,7 @@ func (cli *Client) IsActivationInProgress() bool { return cli.isActivationInProgress.Load() } func parseAMTInfoField(output []byte, parseKey string) (string, bool) { - scanner := bufio.NewScanner(strings.NewReader(string(output))) + scanner := bufio.NewScanner(bytes.NewReader(output)) for scanner.Scan() { line := scanner.Text() diff --git a/platform-update-agent/internal/utils/os_detection.go b/platform-update-agent/internal/utils/os_detection.go index 1a713d14..319cd71d 100644 --- a/platform-update-agent/internal/utils/os_detection.go +++ b/platform-update-agent/internal/utils/os_detection.go @@ -5,6 +5,7 @@ package utils import ( "bufio" + "bytes" "fmt" "strings" ) @@ -28,7 +29,7 @@ func DetectOS(reader FileReader, forcedOS string) (string, error) { return "", fmt.Errorf("failed to open /etc/os-release: %v", err) } - scanner := bufio.NewScanner(strings.NewReader(string(content))) + scanner := bufio.NewScanner(bytes.NewReader(content)) var osId string for scanner.Scan() { line := scanner.Text()