Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance Improvement of klog #334

Closed
harshanarayana opened this issue Jun 22, 2022 · 17 comments · Fixed by #362
Closed

Performance Improvement of klog #334

harshanarayana opened this issue Jun 22, 2022 · 17 comments · Fixed by #362
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@harshanarayana
Copy link

/kind feature

Describe the solution you'd like
I was running through the pprof output of the klog and noticed a few things that can be optimized better for performance.

diff --git a/internal/serialize/keyvalues.go b/internal/serialize/keyvalues.go
index f85d7cc..20e5f97 100644
--- a/internal/serialize/keyvalues.go
+++ b/internal/serialize/keyvalues.go
@@ -114,7 +114,7 @@ func KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {
 			// normally it should be.
 			b.WriteString(sK)
 		} else {
-			b.WriteString(fmt.Sprintf("%s", k))
+			b.WriteString(fmt.Sprint(k))
 		}
 
 		// The type checks are sorted so that more frequently used ones
diff --git a/k8s_references.go b/k8s_references.go
index 2c218f6..743ddb2 100644
--- a/k8s_references.go
+++ b/k8s_references.go
@@ -19,6 +19,7 @@ package klog
 import (
 	"fmt"
 	"reflect"
+	"strings"
 
 	"github.com/go-logr/logr"
 )
@@ -31,7 +32,7 @@ type ObjectRef struct {
 
 func (ref ObjectRef) String() string {
 	if ref.Namespace != "" {
-		return fmt.Sprintf("%s/%s", ref.Namespace, ref.Name)
+		return strings.Join([]string{ref.Namespace, ref.Name}, "/")
 	}
 	return ref.Name
 }
@@ -121,7 +122,7 @@ func (ks kobjSlice) String() string {
 	if err != nil {
 		return err.Error()
 	}
-	return fmt.Sprintf("%v", objectRefs)
+	return fmt.Sprint(objectRefs)
 }
 
 func (ks kobjSlice) MarshalLog() interface{} {
diff --git a/klog.go b/klog.go
index 8305e25..78ef788 100644
--- a/klog.go
+++ b/klog.go
@@ -344,7 +344,7 @@ func (t *traceLocation) String() string {
 	// Lock because the type is not atomic. TODO: clean this up.
 	logging.mu.Lock()
 	defer logging.mu.Unlock()
-	return fmt.Sprintf("%s:%d", t.file, t.line)
+	return strings.Join([]string{t.file, strconv.Itoa(t.line)}, ":")
 }
 
 // Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the

The above patch seeminly makes the performance a litter better based on the benchmarking. Is this worth exploring further?

Anything else you would like to add:
This is purely experimental.

@k8s-ci-robot k8s-ci-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Jun 22, 2022
@harshanarayana
Copy link
Author

name                                                              old time/op    new time/op    delta
Klog/fail-verbosity-non-standard-int-key-check/objects/0-12          115ns ± 0%      95ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/10-12        97.8ns ± 0%    94.9ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/20-12         111ns ± 0%      97ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/30-12         108ns ± 0%     106ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/40-12         107ns ± 0%      99ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/50-12        96.0ns ± 0%   106.8ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/60-12         108ns ± 0%     100ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/70-12        98.0ns ± 0%    95.2ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/80-12         106ns ± 0%     114ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/90-12         181ns ± 0%     100ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-int-key-check/objects/100-12       96.4ns ± 0%   109.1ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/0-12       125ns ± 0%     134ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/10-12      119ns ± 0%     120ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/20-12      118ns ± 0%     120ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/30-12      122ns ± 0%     121ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/40-12      118ns ± 0%     124ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/50-12      121ns ± 0%     194ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/60-12      122ns ± 0%     120ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/70-12      118ns ± 0%     123ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/80-12      118ns ± 0%     132ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/90-12      118ns ± 0%     137ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-struct-key-check/objects/100-12     122ns ± 0%     131ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/0-12                               100ns ± 0%      96ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/10-12                              102ns ± 0%      96ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/20-12                             97.5ns ± 0%    96.0ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/30-12                             94.7ns ± 0%    95.7ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/40-12                             94.6ns ± 0%    95.6ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/50-12                             95.4ns ± 0%    98.6ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/60-12                             97.6ns ± 0%    96.4ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/70-12                              102ns ± 0%     104ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/80-12                              103ns ± 0%     121ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/90-12                             98.0ns ± 0%   100.0ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-check/objects/100-12                            95.4ns ± 0%   102.4ns ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/0-12                        2.00µs ± 0%    1.90µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/10-12                       5.33µs ± 0%    4.80µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/20-12                       11.4µs ± 0%     6.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/30-12                       11.9µs ± 0%     8.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/40-12                       14.8µs ± 0%    10.0µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/50-12                       18.2µs ± 0%    12.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/60-12                       21.0µs ± 0%    14.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/70-12                       24.1µs ± 0%    16.1µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/80-12                       27.1µs ± 0%    18.4µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/90-12                       30.8µs ± 0%    20.0µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/100-12                      39.4µs ± 0%    22.0µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/0-12                        2.61µs ± 0%    2.65µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/10-12                       5.84µs ± 0%    4.76µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/20-12                       9.01µs ± 0%    6.87µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/30-12                       12.1µs ± 0%     8.6µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/40-12                       15.2µs ± 0%    10.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/50-12                       18.5µs ± 0%    12.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/60-12                       22.3µs ± 0%    14.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/70-12                       25.2µs ± 0%    16.9µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/80-12                       28.1µs ± 0%    18.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/90-12                       31.1µs ± 0%    27.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/100-12                      34.0µs ± 0%    23.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/0-12         2.06µs ± 0%    1.98µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/10-12        5.42µs ± 0%    4.08µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/20-12        8.47µs ± 0%    6.51µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/30-12        14.7µs ± 0%     8.7µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/40-12        17.6µs ± 0%    10.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/50-12        17.9µs ± 0%    12.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/60-12        21.1µs ± 0%    15.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/70-12        24.1µs ± 0%    16.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/80-12        27.2µs ± 0%    20.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/90-12        30.9µs ± 0%    23.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/100-12       33.3µs ± 0%    24.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/0-12      2.05µs ± 0%    2.05µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/10-12     5.29µs ± 0%    4.17µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/20-12     8.44µs ± 0%    6.46µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/30-12     11.5µs ± 0%     8.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/40-12     14.7µs ± 0%    10.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/50-12     18.1µs ± 0%    14.4µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/60-12     22.1µs ± 0%    16.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/70-12     24.1µs ± 0%    17.7µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/80-12     31.0µs ± 0%    18.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/90-12     32.0µs ± 0%    20.5µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/100-12    34.9µs ± 0%    22.1µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/0-12         2.57µs ± 0%    2.74µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/10-12        6.10µs ± 0%    6.14µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/20-12        9.51µs ± 0%    7.62µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/30-12        12.3µs ± 0%     9.4µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/40-12        22.6µs ± 0%    11.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/50-12        19.4µs ± 0%    12.7µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/60-12        23.9µs ± 0%    15.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/70-12        24.8µs ± 0%    16.6µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/80-12        29.5µs ± 0%    19.9µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/90-12        32.3µs ± 0%    20.9µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/100-12       34.3µs ± 0%    22.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/0-12          221ns ± 0%     217ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/10-12         260ns ± 0%     230ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/20-12         240ns ± 0%     229ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/30-12         214ns ± 0%     218ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/40-12         317ns ± 0%     207ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/50-12         221ns ± 0%     208ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/60-12         281ns ± 0%     209ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/70-12         249ns ± 0%     220ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/80-12         213ns ± 0%     209ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/90-12         302ns ± 0%     310ns ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/100-12        262ns ± 0%     283ns ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/0-12                                2.24µs ± 0%    2.21µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/10-12                               5.61µs ± 0%    4.75µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/20-12                               9.21µs ± 0%    6.11µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/30-12                               14.6µs ± 0%     8.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/40-12                               18.3µs ± 0%    10.1µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/50-12                               21.1µs ± 0%    12.4µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/60-12                               21.3µs ± 0%    14.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/70-12                               24.5µs ± 0%    18.1µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/80-12                               29.1µs ± 0%    22.8µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/90-12                               31.6µs ± 0%    32.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/100-12                              34.0µs ± 0%    54.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/0-12                              1.94µs ± 0%    1.90µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/10-12                             5.29µs ± 0%    4.09µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/20-12                             8.48µs ± 0%    6.16µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/30-12                             11.7µs ± 0%     9.4µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/40-12                             14.9µs ± 0%    14.0µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/50-12                             18.5µs ± 0%    15.9µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/60-12                             21.4µs ± 0%    14.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/70-12                             25.0µs ± 0%    16.6µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/80-12                             28.2µs ± 0%    21.3µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/90-12                             32.3µs ± 0%    20.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/100-12                            40.0µs ± 0%    22.1µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/0-12                     2.12µs ± 0%    2.00µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/10-12                    5.43µs ± 0%    4.24µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/20-12                    8.72µs ± 0%    6.23µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/30-12                    11.8µs ± 0%     8.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/40-12                    15.4µs ± 0%    10.4µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/50-12                    18.7µs ± 0%    12.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/60-12                    21.6µs ± 0%    15.1µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/70-12                    28.1µs ± 0%    16.2µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/80-12                    29.7µs ± 0%    21.0µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/90-12                    31.6µs ± 0%    20.7µs ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/100-12                   34.2µs ± 0%    22.7µs ± 0%   ~     (p=1.000 n=1+1)

name                                                              old alloc/op   new alloc/op   delta
Klog/fail-verbosity-non-standard-int-key-check/objects/0-12          72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/10-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/20-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/30-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/40-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/50-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/60-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/70-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/80-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/90-12         72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/100-12        72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/0-12       88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/10-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/20-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/30-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/40-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/50-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/60-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/70-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/80-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/90-12      88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/100-12     88.0B ± 0%     88.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/0-12                               72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/10-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/20-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/30-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/40-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/50-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/60-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/70-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/80-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/90-12                              72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/100-12                             72.0B ± 0%     72.0B ± 0%   ~     (all equal)
Klog/non-standard-int-key-check/objects/0-12                          384B ± 0%      368B ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/10-12                       1.46kB ± 0%    1.12kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/20-12                       2.54kB ± 0%    1.87kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/30-12                       3.57kB ± 0%    2.59kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/40-12                       4.66kB ± 0%    3.35kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/50-12                       6.31kB ± 0%    4.69kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/60-12                       8.00kB ± 0%    5.44kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/70-12                       9.06kB ± 0%    6.80kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/80-12                       10.2kB ± 0%     7.7kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/90-12                       11.4kB ± 0%     8.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/100-12                      12.7kB ± 0%     9.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/0-12                          872B ± 0%      848B ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/10-12                       1.93kB ± 0%    1.58kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/20-12                       3.02kB ± 0%    2.35kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/30-12                       4.04kB ± 0%    3.06kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/40-12                       5.13kB ± 0%    3.83kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/50-12                       6.81kB ± 0%    5.15kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/60-12                       8.46kB ± 0%    6.53kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/70-12                       9.52kB ± 0%    7.27kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/80-12                       10.8kB ± 0%     8.1kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/90-12                       12.0kB ± 0%     9.0kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/100-12                      13.2kB ± 0%    10.0kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/0-12           384B ± 0%      368B ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/10-12        1.46kB ± 0%    1.12kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/20-12        2.54kB ± 0%    1.87kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/30-12        3.57kB ± 0%    2.59kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/40-12        4.66kB ± 0%    3.35kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/50-12        6.31kB ± 0%    4.69kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/60-12        8.00kB ± 0%    5.44kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/70-12        9.06kB ± 0%    6.80kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/80-12        10.2kB ± 0%     7.7kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/90-12        11.4kB ± 0%     8.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/100-12       12.7kB ± 0%     9.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/0-12        400B ± 0%      400B ± 0%   ~     (all equal)
Klog/pass-verbosity-non-standard-struct-key-check/objects/10-12     1.46kB ± 0%    1.14kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/20-12     2.55kB ± 0%    1.91kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/30-12     3.58kB ± 0%    2.62kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/40-12     4.67kB ± 0%    3.38kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/50-12     6.32kB ± 0%    4.71kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/60-12     8.01kB ± 0%    6.09kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/70-12     9.07kB ± 0%    6.83kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/80-12     10.3kB ± 0%     7.7kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/90-12     11.4kB ± 0%     8.6kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/100-12    12.7kB ± 0%     9.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/0-12           872B ± 0%      848B ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/10-12        1.93kB ± 0%    1.58kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/20-12        3.02kB ± 0%    2.35kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/30-12        4.04kB ± 0%    3.06kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/40-12        5.13kB ± 0%    3.83kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/50-12        6.81kB ± 0%    5.15kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/60-12        8.46kB ± 0%    6.53kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/70-12        9.52kB ± 0%    7.27kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/80-12        10.8kB ± 0%     8.1kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/90-12        12.0kB ± 0%     9.0kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/100-12       13.2kB ± 0%    10.0kB ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/0-12           280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/10-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/20-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/30-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/40-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/50-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/60-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/70-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/80-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/90-12          280B ± 0%      280B ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/100-12         280B ± 0%      280B ± 0%   ~     (all equal)
Klog/no-verbosity-check/objects/0-12                                  368B ± 0%      368B ± 0%   ~     (all equal)
Klog/no-verbosity-check/objects/10-12                               1.44kB ± 0%    1.12kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/20-12                               2.51kB ± 0%    1.87kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/30-12                               3.55kB ± 0%    2.59kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/40-12                               4.63kB ± 0%    3.35kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/50-12                               6.29kB ± 0%    4.69kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/60-12                               7.36kB ± 0%    5.44kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/70-12                               9.04kB ± 0%    6.80kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/80-12                               10.2kB ± 0%     7.7kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/90-12                               11.4kB ± 0%     8.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/100-12                              12.7kB ± 0%     9.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/0-12                                368B ± 0%      368B ± 0%   ~     (all equal)
Klog/pass-verbosity-check/objects/10-12                             1.44kB ± 0%    1.12kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/20-12                             2.51kB ± 0%    1.87kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/30-12                             3.55kB ± 0%    2.59kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/40-12                             4.63kB ± 0%    3.35kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/50-12                             6.29kB ± 0%    4.69kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/60-12                             7.36kB ± 0%    5.44kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/70-12                             9.04kB ± 0%    6.80kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/80-12                             10.2kB ± 0%     7.7kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/90-12                             11.4kB ± 0%     8.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/100-12                            12.7kB ± 0%     9.5kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/0-12                       400B ± 0%      400B ± 0%   ~     (all equal)
Klog/non-standard-struct-key-check/objects/10-12                    1.46kB ± 0%    1.14kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/20-12                    2.55kB ± 0%    1.91kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/30-12                    3.58kB ± 0%    2.62kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/40-12                    4.67kB ± 0%    3.38kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/50-12                    6.32kB ± 0%    4.71kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/60-12                    8.01kB ± 0%    6.09kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/70-12                    9.07kB ± 0%    6.83kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/80-12                    10.3kB ± 0%     7.7kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/90-12                    11.4kB ± 0%     8.6kB ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/100-12                   12.7kB ± 0%     9.5kB ± 0%   ~     (p=1.000 n=1+1)

name                                                              old allocs/op  new allocs/op  delta
Klog/fail-verbosity-non-standard-int-key-check/objects/0-12           3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/10-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/20-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/30-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/40-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/50-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/60-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/70-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/80-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/90-12          3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-int-key-check/objects/100-12         3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/0-12        4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/10-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/20-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/30-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/40-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/50-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/60-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/70-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/80-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/90-12       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-struct-key-check/objects/100-12      4.00 ± 0%      4.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/0-12                                3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/10-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/20-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/30-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/40-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/50-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/60-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/70-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/80-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/90-12                               3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-check/objects/100-12                              3.00 ± 0%      3.00 ± 0%   ~     (all equal)
Klog/non-standard-int-key-check/objects/0-12                          13.0 ± 0%      12.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/10-12                         55.0 ± 0%      34.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/20-12                         95.0 ± 0%      54.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/30-12                          135 ± 0%        74 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/40-12                          175 ± 0%        94 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/50-12                          218 ± 0%       117 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/60-12                          261 ± 0%       137 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/70-12                          301 ± 0%       160 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/80-12                          341 ± 0%       180 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/90-12                          381 ± 0%       200 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-int-key-check/objects/100-12                         421 ± 0%       220 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/0-12                          21.0 ± 0%      21.0 ± 0%   ~     (all equal)
Klog/non-standard-map-key-check/objects/10-12                         63.0 ± 0%      43.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/20-12                          103 ± 0%        63 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/30-12                          143 ± 0%        83 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/40-12                          183 ± 0%       103 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/50-12                          226 ± 0%       126 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/60-12                          269 ± 0%       149 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/70-12                          309 ± 0%       169 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/80-12                          349 ± 0%       189 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/90-12                          389 ± 0%       209 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-map-key-check/objects/100-12                         429 ± 0%       229 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/0-12           13.0 ± 0%      12.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/10-12          55.0 ± 0%      34.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/20-12          95.0 ± 0%      54.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/30-12           135 ± 0%        74 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/40-12           175 ± 0%        94 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/50-12           218 ± 0%       117 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/60-12           261 ± 0%       137 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/70-12           301 ± 0%       160 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/80-12           341 ± 0%       180 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/90-12           381 ± 0%       200 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-int-key-check/objects/100-12          421 ± 0%       220 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/0-12        14.0 ± 0%      14.0 ± 0%   ~     (all equal)
Klog/pass-verbosity-non-standard-struct-key-check/objects/10-12       56.0 ± 0%      36.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/20-12       96.0 ± 0%      56.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/30-12        136 ± 0%        76 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/40-12        176 ± 0%        96 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/50-12        219 ± 0%       119 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/60-12        262 ± 0%       142 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/70-12        302 ± 0%       162 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/80-12        342 ± 0%       182 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/90-12        382 ± 0%       202 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-struct-key-check/objects/100-12       422 ± 0%       222 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/0-12           21.0 ± 0%      21.0 ± 0%   ~     (all equal)
Klog/pass-verbosity-non-standard-map-key-check/objects/10-12          63.0 ± 0%      43.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/20-12           103 ± 0%        63 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/30-12           143 ± 0%        83 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/40-12           183 ± 0%       103 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/50-12           226 ± 0%       126 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/60-12           269 ± 0%       149 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/70-12           309 ± 0%       169 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/80-12           349 ± 0%       189 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/90-12           389 ± 0%       209 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-non-standard-map-key-check/objects/100-12          429 ± 0%       229 ± 0%   ~     (p=1.000 n=1+1)
Klog/fail-verbosity-non-standard-map-key-check/objects/0-12           5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/10-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/20-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/30-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/40-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/50-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/60-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/70-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/80-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/90-12          5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/fail-verbosity-non-standard-map-key-check/objects/100-12         5.00 ± 0%      5.00 ± 0%   ~     (all equal)
Klog/no-verbosity-check/objects/0-12                                  12.0 ± 0%      12.0 ± 0%   ~     (all equal)
Klog/no-verbosity-check/objects/10-12                                 54.0 ± 0%      34.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/20-12                                 94.0 ± 0%      54.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/30-12                                  134 ± 0%        74 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/40-12                                  174 ± 0%        94 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/50-12                                  217 ± 0%       117 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/60-12                                  257 ± 0%       137 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/70-12                                  300 ± 0%       160 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/80-12                                  340 ± 0%       180 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/90-12                                  380 ± 0%       200 ± 0%   ~     (p=1.000 n=1+1)
Klog/no-verbosity-check/objects/100-12                                 420 ± 0%       220 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/0-12                                12.0 ± 0%      12.0 ± 0%   ~     (all equal)
Klog/pass-verbosity-check/objects/10-12                               54.0 ± 0%      34.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/20-12                               94.0 ± 0%      54.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/30-12                                134 ± 0%        74 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/40-12                                174 ± 0%        94 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/50-12                                217 ± 0%       117 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/60-12                                257 ± 0%       137 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/70-12                                300 ± 0%       160 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/80-12                                340 ± 0%       180 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/90-12                                380 ± 0%       200 ± 0%   ~     (p=1.000 n=1+1)
Klog/pass-verbosity-check/objects/100-12                               420 ± 0%       220 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/0-12                       14.0 ± 0%      14.0 ± 0%   ~     (all equal)
Klog/non-standard-struct-key-check/objects/10-12                      56.0 ± 0%      36.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/20-12                      96.0 ± 0%      56.0 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/30-12                       136 ± 0%        76 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/40-12                       176 ± 0%        96 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/50-12                       219 ± 0%       119 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/60-12                       262 ± 0%       142 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/70-12                       302 ± 0%       162 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/80-12                       342 ± 0%       182 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/90-12                       382 ± 0%       202 ± 0%   ~     (p=1.000 n=1+1)
Klog/non-standard-struct-key-check/objects/100-12                      422 ± 0%       222 ± 0%   ~     (p=1.000 n=1+1)

@harshanarayana
Copy link
Author

cc @pohly @dims Any suggestions on this ?

@harshanarayana
Copy link
Author

harshanarayana commented Jun 23, 2022

This comes at the cost of below.

{test 2} -> fmt.Sprint
{test %!s(int=2)} -> fmt.Sprintf

@pohly
Copy link

pohly commented Jun 23, 2022

This is worth exploring further. Can you run the benchmark more often, say with -count=5 and compare again to see how stable the results are?

@harshanarayana
Copy link
Author

@pohly Sure. Let me get those stats for you to review.

/assign

@harshanarayana
Copy link
Author

name                                                             old time/op    new time/op    delta
Output/no-verbosity-check/objects/0-12                             1.87µs ± 1%    2.14µs ± 6%   +14.34%  (p=0.016 n=4+5)
Output/no-verbosity-check/objects/10-12                            5.31µs ± 5%    4.91µs ± 9%      ~     (p=0.056 n=5+5)
Output/no-verbosity-check/objects/20-12                            9.20µs ±10%    7.84µs ±14%   -14.71%  (p=0.032 n=5+5)
Output/no-verbosity-check/objects/30-12                            11.9µs ± 2%    10.5µs ± 3%   -11.87%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/40-12                            15.1µs ± 6%    12.9µs ± 3%   -14.50%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/50-12                            18.5µs ± 3%    19.0µs ±44%      ~     (p=0.151 n=5+5)
Output/no-verbosity-check/objects/60-12                            21.5µs ± 2%   29.3µs ±101%      ~     (p=0.421 n=5+5)
Output/no-verbosity-check/objects/70-12                            25.9µs ± 8%    26.7µs ±15%      ~     (p=0.690 n=5+5)
Output/no-verbosity-check/objects/80-12                            28.2µs ± 4%    29.9µs ±17%      ~     (p=0.690 n=5+5)
Output/no-verbosity-check/objects/90-12                            35.1µs ±31%    26.7µs ± 5%   -23.98%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/100-12                           35.4µs ± 4%    27.8µs ± 2%   -21.28%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/0-12                     2.21µs ±15%    1.93µs ± 3%   -12.80%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/10-12                    5.38µs ± 3%    4.59µs ±13%   -14.63%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/20-12                    8.80µs ± 3%    6.83µs ± 2%   -22.31%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/30-12                    11.6µs ± 1%     8.3µs ± 3%   -29.13%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/40-12                    15.6µs ±14%    16.2µs ±86%      ~     (p=0.151 n=5+5)
Output/non-standard-int-key-check/objects/50-12                    19.8µs ±25%    13.5µs ±13%   -31.99%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/60-12                    21.8µs ± 2%    17.4µs ± 4%   -20.20%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/70-12                    24.8µs ± 3%    18.1µs ±10%   -26.99%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/80-12                    29.0µs ± 9%    20.5µs ±11%   -29.28%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/90-12                    32.5µs ± 5%    22.6µs ±15%   -30.55%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/100-12                   35.2µs ± 4%    30.4µs ±16%      ~     (p=0.063 n=4+5)
Output/pass-verbosity-non-standard-map-key-check/objects/0-12      2.74µs ±14%    2.56µs ± 4%      ~     (p=0.095 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/10-12     6.01µs ± 4%    4.83µs ± 4%   -19.65%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/20-12     9.21µs ± 1%    7.66µs ±38%      ~     (p=0.151 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/30-12     12.5µs ± 3%     9.7µs ±19%   -22.97%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/40-12     15.8µs ± 4%    12.8µs ±17%   -18.78%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/50-12     18.9µs ± 2%    18.1µs ±43%      ~     (p=0.151 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/60-12     23.5µs ±17%    17.6µs ± 9%   -25.05%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/70-12     25.5µs ± 2%    19.2µs ±19%   -24.79%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/80-12     32.1µs ±28%    22.5µs ± 7%   -30.03%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/90-12     31.7µs ± 4%    26.7µs ±12%   -15.67%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/100-12    36.4µs ±12%    26.4µs ± 6%   -27.35%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/0-12                           1.93µs ± 5%    2.20µs ±18%   +14.03%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/10-12                          5.25µs ± 3%    6.91µs ±41%   +31.67%  (p=0.016 n=5+5)
Output/pass-verbosity-check/objects/20-12                          9.17µs ±19%    7.21µs ± 9%   -21.39%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/30-12                          11.6µs ± 2%     9.1µs ± 2%   -21.20%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/40-12                          14.9µs ± 3%    11.3µs ± 0%   -24.11%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/50-12                          19.0µs ± 5%    14.3µs ± 7%   -24.91%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/60-12                          21.3µs ± 3%    16.0µs ± 2%   -24.57%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/70-12                          25.2µs ± 4%    19.2µs ± 4%   -23.84%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/80-12                          27.8µs ± 3%    21.9µs ± 7%   -21.08%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/90-12                          31.0µs ± 2%    22.8µs ± 1%   -26.67%  (p=0.016 n=5+4)
Output/pass-verbosity-check/objects/100-12                         33.8µs ± 1%    24.9µs ± 7%   -26.22%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/0-12                            113ns ±33%     139ns ±21%      ~     (p=0.095 n=5+5)
Output/fail-verbosity-check/objects/10-12                          96.7ns ± 0%   213.4ns ±41%  +120.53%  (p=0.016 n=4+5)
Output/fail-verbosity-check/objects/20-12                          98.3ns ± 3%   148.5ns ±10%   +51.05%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/30-12                          98.0ns ± 2%   154.0ns ±13%   +57.13%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/40-12                          97.6ns ± 2%   136.2ns ± 3%   +39.48%  (p=0.016 n=4+5)
Output/fail-verbosity-check/objects/50-12                           102ns ± 7%     147ns ±11%   +44.02%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/60-12                          99.1ns ± 3%   144.2ns ± 8%   +45.52%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/70-12                          98.5ns ± 4%   129.7ns ± 5%   +31.62%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/80-12                           103ns ±16%     129ns ± 5%   +25.30%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/90-12                           101ns ± 8%     124ns ± 6%   +23.36%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/100-12                         98.6ns ± 8%   125.4ns ±20%   +27.27%  (p=0.008 n=5+5)
Output/non-standard-struct-key-check/objects/0-12                  2.10µs ± 5%    3.27µs ±45%      ~     (p=0.056 n=5+5)
Output/non-standard-struct-key-check/objects/10-12                 5.43µs ± 1%    4.73µs ±17%      ~     (p=0.135 n=5+5)
Output/non-standard-struct-key-check/objects/20-12                 8.57µs ± 1%    7.31µs ± 4%   -14.68%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/0-12                     2.61µs ± 2%    3.16µs ± 5%   +20.85%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/10-12                    6.00µs ± 2%    6.13µs ±12%      ~     (p=0.151 n=5+5)
Output/non-standard-map-key-check/objects/20-12                    9.25µs ± 3%    8.85µs ± 7%      ~     (p=0.095 n=5+5)
Output/non-standard-map-key-check/objects/30-12                    12.7µs ± 7%    11.9µs ± 7%      ~     (p=0.222 n=5+5)
Output/non-standard-map-key-check/objects/40-12                    15.5µs ± 1%    14.2µs ± 8%    -8.48%  (p=0.016 n=4+5)
Output/non-standard-map-key-check/objects/50-12                    18.8µs ± 0%    16.1µs ±14%      ~     (p=0.095 n=2+5)

name                                                             old alloc/op   new alloc/op   delta
Output/no-verbosity-check/objects/0-12                               368B ± 0%      368B ± 0%      ~     (all equal)
Output/no-verbosity-check/objects/10-12                            1.44kB ± 0%    1.12kB ± 0%   -22.22%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/20-12                            2.51kB ± 0%    1.87kB ± 0%   -25.48%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/30-12                            3.55kB ± 0%    2.59kB ± 0%   -27.04%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/40-12                            4.63kB ± 0%    3.35kB ± 0%   -27.69%  (p=0.000 n=5+4)
Output/no-verbosity-check/objects/50-12                            6.29kB ± 0%    4.69kB ± 0%   -25.45%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/60-12                            7.36kB ± 0%    5.44kB ± 0%   -26.09%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/70-12                            9.04kB ± 0%    6.80kB ± 0%   -24.78%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/80-12                            10.2kB ± 0%     7.7kB ± 0%   -25.03%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/90-12                            11.4kB ± 0%     8.5kB ± 0%   -25.25%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/100-12                           12.7kB ± 0%     9.5kB ± 0%   -25.28%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/0-12                       384B ± 0%      368B ± 0%    -4.17%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/10-12                    1.46kB ± 0%    1.12kB ± 0%   -23.08%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/20-12                    2.54kB ± 0%    1.87kB ± 0%   -26.40%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/30-12                    3.57kB ± 0%    2.59kB ± 0%   -27.37%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/40-12                    4.66kB ± 0%    3.35kB ± 0%   -28.19%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/50-12                    6.31kB ± 0%    4.69kB ± 0%   -25.64%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/60-12                    8.00kB ± 0%    5.44kB ± 0%   -32.00%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/70-12                    9.06kB ± 0%    6.80kB ± 0%   -24.91%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/80-12                    10.2kB ± 0%     7.7kB ± 0%   -25.15%  (p=0.000 n=5+4)
Output/non-standard-int-key-check/objects/90-12                    11.4kB ± 0%     8.5kB ± 0%      ~     (p=0.079 n=4+5)
Output/non-standard-int-key-check/objects/100-12                   12.7kB ± 0%     9.5kB ± 0%      ~     (p=0.079 n=4+5)
Output/pass-verbosity-non-standard-map-key-check/objects/0-12        872B ± 0%      848B ± 0%    -2.75%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/10-12     1.93kB ± 0%    1.58kB ± 0%   -17.88%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/20-12     3.02kB ± 0%    2.35kB ± 0%   -22.01%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/30-12     4.04kB ± 0%    3.06kB ± 0%   -24.37%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/40-12     5.13kB ± 0%    3.83kB ± 0%   -25.43%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/50-12     6.81kB ± 0%    5.15kB ± 0%   -24.34%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/60-12     8.46kB ± 0%    6.53kB ± 0%   -22.80%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/70-12     9.52kB ± 0%    7.27kB ± 0%   -23.63%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/80-12     10.8kB ± 0%     8.1kB ± 0%   -24.46%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/90-12     12.0kB ± 0%     9.0kB ± 0%   -24.91%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/100-12    13.2kB ± 0%    10.0kB ± 0%   -24.38%  (p=0.000 n=5+4)
Output/pass-verbosity-check/objects/0-12                             368B ± 0%      368B ± 0%      ~     (all equal)
Output/pass-verbosity-check/objects/10-12                          1.44kB ± 0%    1.12kB ± 0%   -22.22%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/20-12                          2.51kB ± 0%    1.87kB ± 0%   -25.47%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/30-12                          3.55kB ± 0%    2.59kB ± 0%   -27.04%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/40-12                          4.63kB ± 0%    3.35kB ± 0%   -27.69%  (p=0.000 n=5+4)
Output/pass-verbosity-check/objects/50-12                          6.29kB ± 0%    4.69kB ± 0%   -25.45%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/60-12                          7.36kB ± 0%    5.44kB ± 0%   -26.09%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/70-12                          9.04kB ± 0%    6.80kB ± 0%   -24.78%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/80-12                          10.2kB ± 0%     7.7kB ± 0%   -25.03%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/90-12                          11.4kB ± 0%     8.5kB ± 0%   -25.25%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/100-12                         12.7kB ± 0%     9.5kB ± 0%   -25.28%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/0-12                            72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/10-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/20-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/30-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/40-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/50-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/60-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/70-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/80-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/90-12                           72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/100-12                          72.0B ± 0%     72.0B ± 0%      ~     (all equal)
Output/non-standard-struct-key-check/objects/0-12                    400B ± 0%      400B ± 0%      ~     (all equal)
Output/non-standard-struct-key-check/objects/10-12                 1.46kB ± 0%    1.14kB ± 0%   -21.86%  (p=0.008 n=5+5)
Output/non-standard-struct-key-check/objects/20-12                 2.55kB ± 0%    1.91kB ± 0%   -25.07%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/0-12                       872B ± 0%      848B ± 0%    -2.75%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/10-12                    1.93kB ± 0%    1.58kB ± 0%   -17.88%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/20-12                    3.02kB ± 0%    2.35kB ± 0%   -22.01%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/30-12                    4.04kB ± 0%    3.06kB ± 0%   -24.37%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/40-12                    5.13kB ± 0%    3.83kB ± 0%   -25.43%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/50-12                    6.81kB ± 0%    5.15kB ± 0%      ~     (p=0.800 n=2+4)

name                                                             old allocs/op  new allocs/op  delta
Output/no-verbosity-check/objects/0-12                               12.0 ± 0%      12.0 ± 0%      ~     (all equal)
Output/no-verbosity-check/objects/10-12                              54.0 ± 0%      34.0 ± 0%   -37.04%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/20-12                              94.0 ± 0%      54.0 ± 0%   -42.55%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/30-12                               134 ± 0%        74 ± 0%   -44.78%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/40-12                               174 ± 0%        94 ± 0%   -45.98%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/50-12                               217 ± 0%       117 ± 0%   -46.08%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/60-12                               257 ± 0%       137 ± 0%   -46.69%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/70-12                               300 ± 0%       160 ± 0%   -46.67%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/80-12                               340 ± 0%       180 ± 0%   -47.06%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/90-12                               380 ± 0%       200 ± 0%   -47.37%  (p=0.008 n=5+5)
Output/no-verbosity-check/objects/100-12                              420 ± 0%       220 ± 0%   -47.62%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/0-12                       13.0 ± 0%      12.0 ± 0%    -7.69%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/10-12                      55.0 ± 0%      34.0 ± 0%   -38.18%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/20-12                      95.0 ± 0%      54.0 ± 0%   -43.16%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/30-12                       135 ± 0%        74 ± 0%   -45.19%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/40-12                       175 ± 0%        94 ± 0%   -46.29%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/50-12                       218 ± 0%       117 ± 0%   -46.33%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/60-12                       261 ± 0%       137 ± 0%   -47.51%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/70-12                       301 ± 0%       160 ± 0%   -46.84%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/80-12                       341 ± 0%       180 ± 0%   -47.21%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/90-12                       381 ± 0%       200 ± 0%   -47.51%  (p=0.008 n=5+5)
Output/non-standard-int-key-check/objects/100-12                      421 ± 0%       220 ± 0%   -47.74%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/0-12        21.0 ± 0%      21.0 ± 0%      ~     (all equal)
Output/pass-verbosity-non-standard-map-key-check/objects/10-12       63.0 ± 0%      43.0 ± 0%   -31.75%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/20-12        103 ± 0%        63 ± 0%   -38.83%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/30-12        143 ± 0%        83 ± 0%   -41.96%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/40-12        183 ± 0%       103 ± 0%   -43.72%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/50-12        226 ± 0%       126 ± 0%   -44.25%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/60-12        269 ± 0%       149 ± 0%   -44.61%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/70-12        309 ± 0%       169 ± 0%   -45.31%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/80-12        349 ± 0%       189 ± 0%   -45.85%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/90-12        389 ± 0%       209 ± 0%   -46.27%  (p=0.008 n=5+5)
Output/pass-verbosity-non-standard-map-key-check/objects/100-12       429 ± 0%       229 ± 0%   -46.62%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/0-12                             12.0 ± 0%      12.0 ± 0%      ~     (all equal)
Output/pass-verbosity-check/objects/10-12                            54.0 ± 0%      34.0 ± 0%   -37.04%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/20-12                            94.0 ± 0%      54.0 ± 0%   -42.55%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/30-12                             134 ± 0%        74 ± 0%   -44.78%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/40-12                             174 ± 0%        94 ± 0%   -45.98%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/50-12                             217 ± 0%       117 ± 0%   -46.08%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/60-12                             257 ± 0%       137 ± 0%   -46.69%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/70-12                             300 ± 0%       160 ± 0%   -46.67%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/80-12                             340 ± 0%       180 ± 0%   -47.06%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/90-12                             380 ± 0%       200 ± 0%   -47.37%  (p=0.008 n=5+5)
Output/pass-verbosity-check/objects/100-12                            420 ± 0%       220 ± 0%   -47.62%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/0-12                             3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/10-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/20-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/30-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/40-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/50-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/60-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/70-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/80-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/90-12                            3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/fail-verbosity-check/objects/100-12                           3.00 ± 0%      3.00 ± 0%      ~     (all equal)
Output/non-standard-struct-key-check/objects/0-12                    14.0 ± 0%      14.0 ± 0%      ~     (all equal)
Output/non-standard-struct-key-check/objects/10-12                   56.0 ± 0%      36.0 ± 0%   -35.71%  (p=0.008 n=5+5)
Output/non-standard-struct-key-check/objects/20-12                   96.0 ± 0%      56.0 ± 0%   -41.67%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/0-12                       21.0 ± 0%      21.0 ± 0%      ~     (all equal)
Output/non-standard-map-key-check/objects/10-12                      63.0 ± 0%      43.0 ± 0%   -31.75%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/20-12                       103 ± 0%        63 ± 0%   -38.83%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/30-12                       143 ± 0%        83 ± 0%   -41.96%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/40-12                       183 ± 0%       103 ± 0%   -43.72%  (p=0.008 n=5+5)
Output/non-standard-map-key-check/objects/50-12                       226 ± 0%       126 ± 0%      ~     (p=0.952 n=2+5)

Largely the current behavior holds true.

@harshanarayana
Copy link
Author

Output/fail-verbosity-check/objects/0-12                            113ns ±33%     139ns ±21%      ~     (p=0.095 n=5+5)
Output/fail-verbosity-check/objects/10-12                          96.7ns ± 0%   213.4ns ±41%  +120.53%  (p=0.016 n=4+5)
Output/fail-verbosity-check/objects/20-12                          98.3ns ± 3%   148.5ns ±10%   +51.05%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/30-12                          98.0ns ± 2%   154.0ns ±13%   +57.13%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/40-12                          97.6ns ± 2%   136.2ns ± 3%   +39.48%  (p=0.016 n=4+5)
Output/fail-verbosity-check/objects/50-12                           102ns ± 7%     147ns ±11%   +44.02%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/60-12                          99.1ns ± 3%   144.2ns ± 8%   +45.52%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/70-12                          98.5ns ± 4%   129.7ns ± 5%   +31.62%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/80-12                           103ns ±16%     129ns ± 5%   +25.30%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/90-12                           101ns ± 8%     124ns ± 6%   +23.36%  (p=0.008 n=5+5)
Output/fail-verbosity-check/objects/100-12                         98.6ns ± 8%   125.4ns ±20%   +27.27%  (p=0.008 n=5+5)

Some outliers I need to look further into.

@pohly
Copy link

pohly commented Jun 23, 2022

It's also worth checking how well the existing benchmarks cover the code paths that get modified. Probably not very well, in which cases adding additional cases may be useful as a first step.

@harshanarayana
Copy link
Author

Yup. Will do that and have a PR with the updated benchmarking in a day or so. Then we can see how this performs.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 21, 2022
@pohly
Copy link

pohly commented Sep 21, 2022

/remove-lifecycle stale

ping @harshanarayana

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 21, 2022
@harshanarayana
Copy link
Author

@pohly This got on a bit of a back-burner because of a few other items I was taking care of. Will get an update on this soon in this space.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 20, 2022
@pohly
Copy link

pohly commented Dec 20, 2022

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 20, 2022
@pohly
Copy link

pohly commented Dec 22, 2022

@@ -31,7 +32,7 @@ type ObjectRef struct {
 
 func (ref ObjectRef) String() string {
 	if ref.Namespace != "" {
-		return fmt.Sprintf("%s/%s", ref.Namespace, ref.Name)
+		return strings.Join([]string{ref.Namespace, ref.Name}, "/")
 	}
 	return ref.Name
 }

I think a better solution is to use a strings.Builder. Then constructing the new string is exactly one allocation. I have a commit ready.

An even better solution might be to have a WriteString(out io.Writer) function and then avoid the allocation entirely. I'll try that.

 diff --git a/internal/serialize/keyvalues.go b/internal/serialize/keyvalues.go
index f85d7cc..20e5f97 100644
--- a/internal/serialize/keyvalues.go
+++ b/internal/serialize/keyvalues.go
@@ -114,7 +114,7 @@ func KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {
			// normally it should be.
			b.WriteString(sK)
		} else {
-			b.WriteString(fmt.Sprintf("%s", k))
+			b.WriteString(fmt.Sprint(k))
		}

		// The type checks are sorted so that more frequently used ones

I don't see a relevant difference for go test -bench='BenchmarkKlogOutput/(map_keys|handle_integer_keys|preserve_order_of)' (only works in a local branch):

name                                             old time/op    new time/op    delta
KlogOutput/preserve_order_of_key/value_pairs-36    14.9µs ± 8%    15.5µs ± 2%    ~     (p=0.095 n=5+5)
KlogOutput/handle_integer_keys-36                  14.9µs ± 5%    14.8µs ± 5%    ~     (p=0.841 n=5+5)
KlogOutput/map_keys-36                             13.9µs ± 6%    13.7µs ± 4%    ~     (p=0.548 n=5+5)

name                                             old alloc/op   new alloc/op   delta
KlogOutput/preserve_order_of_key/value_pairs-36    3.03kB ± 0%    3.03kB ± 0%    ~     (all equal)
KlogOutput/handle_integer_keys-36                  2.83kB ± 0%    2.78kB ± 0%  -1.70%  (p=0.008 n=5+5)
KlogOutput/map_keys-36                             2.58kB ± 0%    2.56kB ± 0%  -0.93%  (p=0.029 n=4+4)

name                                             old allocs/op  new allocs/op  delta
KlogOutput/preserve_order_of_key/value_pairs-36      41.0 ± 0%      41.0 ± 0%    ~     (all equal)
KlogOutput/handle_integer_keys-36                    41.0 ± 0%      39.0 ± 0%  -4.88%  (p=0.008 n=5+5)
KlogOutput/map_keys-36                               39.0 ± 0%      39.0 ± 0%    ~     (all equal)

The different handling of non-string keys doesn't worry me, but I don't see a justification for a change that in practice should not occur in real programs.

@@ -121,7 +122,7 @@ func (ks kobjSlice) String() string {
 	if err != nil {
 		return err.Error()
 	}
-	return fmt.Sprintf("%v", objectRefs)
+	return fmt.Sprint(objectRefs)
 }

This made it worse for me. Not sure, but apparently "%v" is pretty optimized.

name                               old time/op    new time/op    delta
KlogOutput/KObjSlice_nil_entry-36    13.8µs ± 9%    13.9µs ± 5%    ~     (p=0.841 n=5+5)
KlogOutput/KObjSlice_nil_arg-36      12.5µs ± 3%    12.3µs ± 9%    ~     (p=0.841 n=5+5)
KlogOutput/KObjSlice_okay-36         13.9µs ± 3%    15.2µs ± 6%  +9.14%  (p=0.016 n=5+5)
KlogOutput/KObjSlice_int_arg-36      14.0µs ± 7%    13.6µs ±10%    ~     (p=0.310 n=5+5)
KlogOutput/KObjSlice_ints-36         14.7µs ± 7%    15.1µs ± 3%    ~     (p=0.690 n=5+5)

name                               old alloc/op   new alloc/op   delta
KlogOutput/KObjSlice_nil_entry-36    2.62kB ± 0%    2.62kB ± 0%    ~     (all equal)
KlogOutput/KObjSlice_nil_arg-36      2.41kB ± 0%    2.41kB ± 0%    ~     (p=1.000 n=5+4)
KlogOutput/KObjSlice_okay-36         2.82kB ± 0%    2.82kB ± 0%    ~     (p=0.444 n=5+5)
KlogOutput/KObjSlice_int_arg-36      2.67kB ± 0%    2.67kB ± 0%    ~     (p=0.333 n=4+5)
KlogOutput/KObjSlice_ints-36         2.90kB ± 0%    2.90kB ± 0%    ~     (all equal)

name                               old allocs/op  new allocs/op  delta
KlogOutput/KObjSlice_nil_entry-36      38.0 ± 0%      38.0 ± 0%    ~     (all equal)
KlogOutput/KObjSlice_nil_arg-36        35.0 ± 0%      35.0 ± 0%    ~     (all equal)
KlogOutput/KObjSlice_okay-36           42.0 ± 0%      42.0 ± 0%    ~     (all equal)
KlogOutput/KObjSlice_int_arg-36        37.0 ± 0%      37.0 ± 0%    ~     (all equal)
KlogOutput/KObjSlice_ints-36           39.0 ± 0%      39.0 ± 0%    ~     (all equal)
diff --git a/klog.go b/klog.go
index 8305e25..78ef788 100644
--- a/klog.go
+++ b/klog.go
@@ -344,7 +344,7 @@ func (t *traceLocation) String() string {
 	// Lock because the type is not atomic. TODO: clean this up.
 	logging.mu.Lock()
 	defer logging.mu.Unlock()
-	return fmt.Sprintf("%s:%d", t.file, t.line)
+	return strings.Join([]string{t.file, strconv.Itoa(t.line)}, ":")
 }

This is part of the flag.Value interface implementation. I don't think it gets called much and therefore I prefer to not touch it.

@pohly
Copy link

pohly commented Dec 22, 2022

@harshanarayana: see #362

Do you perhaps have time to review that?

@harshanarayana
Copy link
Author

@pohly /ack. Checking that right away.

@dims dims closed this as completed in #362 Jan 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants