Browse Source

perf: reduce traffic formatter allocations (#6790)

Co-authored-by: Javier Guerrero <[email protected]>
Co-authored-by: Copilot App <[email protected]>
Javier Guerrero 9 hours ago
parent
commit
c321933a54
2 changed files with 8 additions and 4 deletions
  1. 2 4
      internal/util/common/format.go
  2. 6 0
      internal/util/common/format_test.go

+ 2 - 4
internal/util/common/format.go

@@ -1,8 +1,6 @@
 package common
 package common
 
 
-import (
-	"fmt"
-)
+import "strconv"
 
 
 // FormatTraffic formats traffic bytes into human-readable units (B, KB, MB, GB, TB, PB).
 // FormatTraffic formats traffic bytes into human-readable units (B, KB, MB, GB, TB, PB).
 func FormatTraffic(trafficBytes int64) string {
 func FormatTraffic(trafficBytes int64) string {
@@ -14,5 +12,5 @@ func FormatTraffic(trafficBytes int64) string {
 		size /= 1024
 		size /= 1024
 		unitIndex++
 		unitIndex++
 	}
 	}
-	return fmt.Sprintf("%.2f%s", size, units[unitIndex])
+	return strconv.FormatFloat(size, 'f', 2, 64) + units[unitIndex]
 }
 }

+ 6 - 0
internal/util/common/format_test.go

@@ -26,3 +26,9 @@ func TestFormatTraffic(t *testing.T) {
 		})
 		})
 	}
 	}
 }
 }
+
+func BenchmarkFormatTraffic(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		_ = FormatTraffic(1536 + int64(i%64)*1024)
+	}
+}