perf: avoid unnecessary byteslice->string before fmt %s verb (#10364)
fmt.Printf or fmt.Sprintf already know how to convert a byteslice into a string when building the output; we shouldn't incur the unnecessary string(byteslice) conversion. Using Bencher, we can see improvements such as https://dashboard.github.orijtech.com/benchmark/3245b8e4bbbd44a597480319aaa4b9fe which in independent experiments show: * time/op (ns/op) FormatIt-8 1.2µs ± 2% 1.1µs ± 10% -11.77% (p=0.000 n=10+9) * speed (MB/s) FormatIt-8 0.71GB/s ± 2% 0.80GB/s ± 9% +13.59% (p=0.000 n=10+9) * allocs/op (B/op) FormatIt-8 2.0kB ± 0% 1.1kB ± 0% -45.62% (p=0.000 n=10+10) * allocs/op (count/op) FormatIt-8 11 ± 0% 9.0 ± 0% -18.18% (p=0.000 n=10+10) Fixes #10363
This commit is contained in:
@@ -56,7 +56,7 @@ func TestAltSigningAlgoList_Contains(t *testing.T) {
|
||||
|
||||
func TestAltSigningAlgoList_String(t *testing.T) {
|
||||
list := SigningAlgoList{hd.Secp256k1, notSupportedAlgo{}}
|
||||
require.Equal(t, fmt.Sprintf("%s,notSupported", string(hd.Secp256k1Type)), list.String())
|
||||
require.Equal(t, fmt.Sprintf("%s,notSupported", hd.Secp256k1Type), list.String())
|
||||
}
|
||||
|
||||
type notSupportedAlgo struct {
|
||||
|
||||
Reference in New Issue
Block a user