improve: remove redundant calls of sprintf by apocelipes · Pull Request #482 · boyter/scc

$ benchstat old.bench new.bench
goos: windows
goarch: amd64
pkg: testbuilder
cpu: Intel(R) Core(TM) i5-10200H CPU @ 2.40GHz
          │  old.bench  │              new.bench              │
          │   sec/op    │   sec/op     vs base                │
Builder-8   1.808µ ± 2%   1.533µ ± 1%  -15.19% (p=0.000 n=10)

          │  old.bench   │              new.bench               │
          │     B/op     │     B/op      vs base                │
Builder-8   1.281Ki ± 0%   1.000Ki ± 0%  -21.95% (p=0.000 n=10)

          │  old.bench  │             new.bench              │
          │  allocs/op  │ allocs/op   vs base                │
Builder-8   15.000 ± 0%   6.000 ± 0%  -60.00% (p=0.000 n=10)
// the old one
func BenchmarkBuilder(b *testing.B) {
	for range b.N {
		var sb strings.Builder
		for i := range 10 {
			sb.WriteString(fmt.Sprintf("%d. writing an integer number: %d", i, i))
		}
	}
}

// the new one
func BenchmarkBuilder(b *testing.B) {
	for range b.N {
		sb := &strings.Builder{}
		for i := range 10 {
			fmt.Fprintf(sb, "%d. writing an integer number: %d", i, i)
		}
	}
}