]> Cypherpunks repositories - gostls13.git/commit
log/slog: optimize slog Level.String() to avoid fmt.Sprintf
authormohanson <mohanson@outlook.com>
Thu, 18 Sep 2025 03:42:30 +0000 (11:42 +0800)
committerGopher Robot <gobot@golang.org>
Fri, 19 Sep 2025 16:59:42 +0000 (09:59 -0700)
commit8616981ce691248dfa585918a108e5f32c9aacc5
treeddebae9a85991fdf434486e60e22be497f5f29bd
parentb8af74436000dcb370b41ec70acc8ab4632adf05
log/slog: optimize slog Level.String() to avoid fmt.Sprintf

No more overhead of fmt.Sprintf, especially beneficial for
high-frequency logging.

goos: linux
goarch: amd64
pkg: log/slog
cpu: Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz
              │ /tmp/old.txt │            /tmp/new.txt             │
              │    sec/op    │   sec/op     vs base                │
LevelString-4   1006.5n ± 2%   334.2n ± 1%  -66.80% (p=0.000 n=10)

              │ /tmp/old.txt │            /tmp/new.txt            │
              │     B/op     │    B/op     vs base                │
LevelString-4     56.00 ± 0%   48.00 ± 0%  -14.29% (p=0.000 n=10)

              │ /tmp/old.txt │          /tmp/new.txt          │
              │  allocs/op   │ allocs/op   vs base            │
LevelString-4     7.000 ± 0%   7.000 ± 0%  ~ (p=1.000 n=10) ¹

Change-Id: I6585d4aaa4da55d72ac70bc66dff45500eccd056
Reviewed-on: https://go-review.googlesource.com/c/go/+/704975
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Sean Liao <sean@liao.dev>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
Auto-Submit: Emmanuel Odeke <emmanuel@orijtech.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/log/slog/level.go
src/log/slog/level_test.go