slog: re-run slog, zerolog, zap benchmarks
slog is as fast as zap, as expected (output from benchstat):
Attrs/fastText_discard/5_args-8 518ns ± 3% 486ns ± 7% ~ (p=0.056 n=5+5)
Attrs/fastText_discard/10_args-8 919ns ±13% 918ns ± 5% ~ (p=0.841 n=5+5)
slog is slower than zerolog:
Attrs/fastText_discard/5_args-8 183ns ± 4% 486ns ± 7% +165.39% (p=0.008 n=5+5)
Attrs/fastText_discard/10_args-8 283ns ± 4% 918ns ± 5% +224.63% (p=0.008 n=5+5)
These numbers understate zerolog's advantage, because it produces JSON
and the slog handler used for benchmarking just concatenates text.
With the slog JSONHandler, the times are 925ns for 5 args and 1630ns
for 10 args.
Most of zerolog's advtange is likely due to its design, which trades
flexibility and safety for speed. Also, zerolog doesn't lock, but that
seems to add only about 200ms to the time. There are no obvious
improvements to be made in the slog JSON implementation, but we will
try to improve it by profiling.
It's important to remember that these benchmarks discard the output,
neglecting I/O latency, which can be significant.
Change-Id: Ie408873465055892e9b70a98aff5c1568ee4175b
Reviewed-on: https://go-review.googlesource.com/c/exp/+/461998
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
diff --git a/slog/benchmarks/slog-nopc.bench b/slog/benchmarks/slog-nopc.bench
index e81acb8..c5cfdd0 100644
--- a/slog/benchmarks/slog-nopc.bench
+++ b/slog/benchmarks/slog-nopc.bench
@@ -2,105 +2,105 @@
goarch: amd64
pkg: golang.org/x/exp/slog/benchmarks
cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
-BenchmarkAttrs/disabled/5_args-8 120566817 9.886 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 120580419 9.938 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 121324966 9.911 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 121062595 9.893 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 121057912 9.932 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.41 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.43 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 11.09 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.48 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.40 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 64782548 17.97 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 63025368 18.01 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 65118757 17.99 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 64365129 18.00 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 65605167 18.04 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18760017 63.01 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18921636 63.20 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18393166 63.39 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18799628 63.49 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18619034 65.11 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 14646416 85.11 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 14588133 79.75 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 14722773 80.61 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 14945148 82.88 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 14407623 80.16 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 14995348 88.12 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 14771359 82.47 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 14966602 80.39 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 14607862 80.86 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 15140772 81.59 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 4655785 270.9 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 4544510 261.2 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 4518172 254.9 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 4501684 258.7 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 4480620 265.9 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 1350786 892.5 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 1372854 877.7 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 1344981 904.4 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 1338459 887.9 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 1341901 883.7 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 7203012 165.8 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 6725558 169.0 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 6161329 167.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 6132082 193.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 6466520 177.3 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 6264601 220.3 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 6641726 206.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 6273969 192.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 8080842 159.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 6378854 195.7 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 2559657 500.7 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 2463889 498.5 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 2399596 482.5 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 2396314 499.8 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 2344711 474.2 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 763503 1918 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 600333 1917 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 615789 1922 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 661753 1892 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 735025 1921 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1524380 777.2 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1567622 837.3 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1530933 712.1 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1432977 841.8 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1510398 811.3 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1469361 782.7 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1555116 761.4 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1495302 776.9 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1573846 781.7 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1580762 776.6 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 979280 1331 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 934000 1292 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 902680 1313 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 1000000 1287 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 940339 1326 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 307284 4507 ns/op 1476 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 308094 4478 ns/op 1476 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 288538 4416 ns/op 1476 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 275323 4548 ns/op 1476 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 277149 4580 ns/op 1476 B/op 17 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1993988 636.4 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1771810 657.6 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 2024022 591.4 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 2020120 570.0 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1837232 647.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1936053 578.3 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1884541 555.6 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1796012 683.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1773603 640.6 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1797331 660.6 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 1000000 1060 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 1000000 1073 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 1000000 1122 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 1000000 1099 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 1000000 1132 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 341420 3886 ns/op 1411 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 313263 3887 ns/op 1411 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 353512 3847 ns/op 1411 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 314788 3915 ns/op 1411 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 326536 3831 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.36 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.40 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.79 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.78 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 113187081 10.79 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 95979213 11.13 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.91 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 11.17 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 11.05 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.67 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 64571424 19.12 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 62505003 18.98 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 65596965 18.71 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 61716511 18.53 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 62806261 18.80 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 17923170 65.24 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 18474331 67.22 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 17646770 67.86 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 17033931 66.41 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 18256833 66.13 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 14399127 88.84 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 12632341 95.60 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 14252593 84.72 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 11236347 97.45 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 11726569 90.01 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 13305091 91.62 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 12172405 94.63 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 12980976 92.37 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 12803614 104.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 12005320 88.81 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 4059170 319.5 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 3483382 372.3 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 3842409 301.9 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 3839804 335.7 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 3182643 361.1 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 1000000 1060 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 1235323 1161 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 1000000 1206 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 1000000 1254 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 909853 1201 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 6260964 197.8 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 6688066 221.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 7639705 164.1 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 5220344 200.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 6531496 186.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 7588935 160.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 7122673 178.8 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 6209121 200.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 6370140 173.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 6048418 192.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 2218376 563.1 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 2191339 557.0 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 2051697 607.6 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1971550 595.0 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 2056645 645.7 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 360135 2892 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 411124 2846 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 480218 2460 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 504228 2464 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 476949 2475 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1291322 862.5 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1418359 856.0 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1339944 946.0 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1348107 857.1 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1320080 910.6 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1277317 861.4 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1341210 981.7 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1268680 907.5 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1302778 969.4 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1276990 940.9 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 791600 1811 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 750620 1718 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 699880 1665 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 924051 1636 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 873486 1525 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 252258 6022 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 238166 5411 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 226570 5721 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 225001 5362 ns/op 1476 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 240476 5466 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1495221 741.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1561606 683.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1548652 802.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1592420 696.6 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1759450 689.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1594424 674.8 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1788061 667.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1541530 706.1 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1569404 738.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1819743 702.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 1000000 1256 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 1000000 1341 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 960759 1318 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 1000000 1214 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 1000000 1305 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 291825 4156 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 287223 4258 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 273271 4720 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 241485 4373 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 333234 4382 ns/op 1411 B/op 1 allocs/op
PASS
-ok golang.org/x/exp/slog/benchmarks 152.032s
+ok golang.org/x/exp/slog/benchmarks 148.487s
diff --git a/slog/benchmarks/slog.bench b/slog/benchmarks/slog.bench
index 9737138..080399b 100644
--- a/slog/benchmarks/slog.bench
+++ b/slog/benchmarks/slog.bench
@@ -2,105 +2,105 @@
goarch: amd64
pkg: golang.org/x/exp/slog/benchmarks
cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
-BenchmarkAttrs/disabled/5_args-8 100000000 10.00 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 120133294 10.03 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 100000000 10.94 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 120048992 9.983 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args-8 120042579 10.03 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.55 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.90 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.57 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.53 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.55 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 64850916 18.12 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 64285437 18.10 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 63619628 18.16 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 64307864 18.35 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/10_args-8 65358739 18.13 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18226285 63.59 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18718836 63.08 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18922497 63.16 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18941928 63.41 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/disabled/40_args-8 18756676 63.14 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3807434 344.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3294904 351.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3815868 314.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3821298 314.7 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3826870 316.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 3695119 324.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 3714860 324.0 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 3723372 323.9 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 3709550 324.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/5_args_ctx-8 3715305 322.3 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2120073 580.5 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2034519 588.7 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2031295 589.7 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 1999431 604.1 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2059425 596.2 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 545107 2181 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 498891 2122 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 539912 2163 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 554348 2152 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 514255 2147 ns/op 1408 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 3011763 423.0 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2911800 427.0 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2888755 412.9 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 3039306 402.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2922464 420.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 2883054 427.9 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 2865037 423.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 2906185 430.6 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 2885389 421.6 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/5_args_ctx-8 2817070 426.1 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1473012 836.7 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1514599 806.6 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1487162 795.9 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1492044 802.8 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1463156 802.8 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 429906 3096 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 379022 3029 ns/op 1413 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 367436 3050 ns/op 1413 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 423674 3021 ns/op 1413 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 425307 3045 ns/op 1413 B/op 1 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1000000 1017 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1000000 1017 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1214295 988.4 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1220462 983.5 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args-8 1169804 978.0 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1000000 1007 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1220032 995.1 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1000000 1028 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1222842 990.2 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/5_args_ctx-8 1236249 980.1 ns/op 8 B/op 2 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 754714 1649 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 752322 1641 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 811074 1608 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 767415 1641 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/10_args-8 806868 1629 ns/op 224 B/op 5 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 233739 5416 ns/op 1477 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 220280 5353 ns/op 1477 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 221613 5419 ns/op 1477 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 225711 5341 ns/op 1477 B/op 17 allocs/op
-BenchmarkAttrs/Text_discard/40_args-8 228565 5426 ns/op 1477 B/op 17 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1487058 778.7 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1523458 818.9 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1316614 908.9 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1522046 777.7 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args-8 1541950 769.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1471117 804.5 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1450405 817.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1449577 827.7 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1426341 829.7 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/5_args_ctx-8 1540002 770.2 ns/op 0 B/op 0 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 882630 1386 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 864253 1411 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 913600 1359 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 924164 1384 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/10_args-8 949437 1385 ns/op 208 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 260247 4768 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 249705 4735 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 243758 4751 ns/op 1411 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 254650 4646 ns/op 1412 B/op 1 allocs/op
-BenchmarkAttrs/JSON_discard/40_args-8 251821 4638 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/disabled/5_args-8 98892404 10.48 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.62 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.73 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.92 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args-8 100000000 10.66 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 11.20 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 11.67 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.89 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 100000000 10.99 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/5_args_ctx-8 91002250 11.37 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 53510887 19.73 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 60331378 19.19 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 62306692 19.63 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 60143833 19.67 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/10_args-8 56598145 19.66 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 16253622 69.64 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 16667188 70.84 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 17396628 68.30 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 17736950 71.59 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/disabled/40_args-8 14518330 74.08 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 3203592 380.1 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 2950881 371.5 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 2910333 369.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 3170496 367.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 3213660 349.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 3121356 393.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 3043286 398.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 3094351 386.8 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 3170066 395.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/5_args_ctx-8 2650004 442.5 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1696753 680.2 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1376792 910.2 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1468706 827.8 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1413218 871.2 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1348390 759.4 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 450120 2591 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 420805 2736 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 402405 2684 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 445548 2540 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 477627 2574 ns/op 1408 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2523033 507.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2455040 517.8 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2762488 454.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2667278 458.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2566798 493.1 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 2534534 477.8 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 2553498 474.5 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 2532687 474.5 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 2619766 484.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args_ctx-8 2403781 492.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1358740 880.3 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1286355 927.4 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1312178 876.7 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1209062 956.3 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1315174 950.8 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 366254 3571 ns/op 1413 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 360555 3643 ns/op 1413 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 350850 3678 ns/op 1413 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 376776 3411 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 340332 3419 ns/op 1413 B/op 1 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 941372 1149 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 975567 1164 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1101978 1238 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 980968 1174 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args-8 1000000 1145 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1000000 1107 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1000000 1062 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1097755 1088 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1000000 1122 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/5_args_ctx-8 1000000 1232 ns/op 8 B/op 2 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 731670 2231 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 624934 2126 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 704256 1790 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 630151 1879 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/10_args-8 720806 1856 ns/op 224 B/op 5 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 226788 6160 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 198184 5963 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 205917 5741 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 201160 5746 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/Text_discard/40_args-8 208953 6389 ns/op 1477 B/op 17 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1269580 931.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1347073 873.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1314978 918.4 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1272811 930.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args-8 1358918 971.1 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1255411 851.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1356436 891.0 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1227829 903.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1361992 896.1 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/5_args_ctx-8 1324644 909.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 600196 1679 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 697009 1689 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 729364 1721 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 752677 1613 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/10_args-8 739350 1463 ns/op 208 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 242408 5117 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 230407 5000 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 254080 5092 ns/op 1412 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 220143 4767 ns/op 1411 B/op 1 allocs/op
+BenchmarkAttrs/JSON_discard/40_args-8 241828 5076 ns/op 1412 B/op 1 allocs/op
PASS
-ok golang.org/x/exp/slog/benchmarks 153.638s
+ok golang.org/x/exp/slog/benchmarks 150.784s
diff --git a/slog/benchmarks/zap_benchmarks/go.mod b/slog/benchmarks/zap_benchmarks/go.mod
index 80c31ad..d4b27ce 100644
--- a/slog/benchmarks/zap_benchmarks/go.mod
+++ b/slog/benchmarks/zap_benchmarks/go.mod
@@ -5,7 +5,7 @@
require (
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
- go.uber.org/zap v1.23.0 // indirect
+ go.uber.org/zap v1.24.0 // indirect
golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 // indirect
)
diff --git a/slog/benchmarks/zap_benchmarks/go.sum b/slog/benchmarks/zap_benchmarks/go.sum
index fa14dba..df10796 100644
--- a/slog/benchmarks/zap_benchmarks/go.sum
+++ b/slog/benchmarks/zap_benchmarks/go.sum
@@ -9,3 +9,5 @@
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY=
go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY=
+go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
+go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
diff --git a/slog/benchmarks/zap_benchmarks/zap.bench b/slog/benchmarks/zap_benchmarks/zap.bench
index cbd97d9..9268dd1 100644
--- a/slog/benchmarks/zap_benchmarks/zap.bench
+++ b/slog/benchmarks/zap_benchmarks/zap.bench
@@ -2,35 +2,35 @@
goarch: amd64
pkg: golang.org/x/exp/slog/benchmarks
cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
-BenchmarkAttrs/async_discard/5_args-8 3724231 325.6 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3573130 331.6 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3528606 337.8 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3049758 342.4 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/5_args-8 3642558 329.9 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2157044 552.3 ns/op 640 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2161822 557.3 ns/op 640 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2179387 554.3 ns/op 640 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2178164 542.6 ns/op 640 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/10_args-8 2151014 552.9 ns/op 640 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 741238 1803 ns/op 2689 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 666352 1962 ns/op 2689 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 669559 1931 ns/op 2689 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 686064 1908 ns/op 2689 B/op 1 allocs/op
-BenchmarkAttrs/async_discard/40_args-8 628890 1923 ns/op 2689 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2352639 479.0 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2532404 471.0 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2550064 480.3 ns/op 321 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2519067 471.2 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/5_args-8 2531066 467.2 ns/op 320 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1499414 803.4 ns/op 641 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1485872 796.6 ns/op 641 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1467692 798.5 ns/op 641 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1507788 804.9 ns/op 641 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/10_args-8 1509254 793.2 ns/op 641 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 477802 2672 ns/op 2698 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 405985 2695 ns/op 2698 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 444037 2682 ns/op 2698 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 445084 2663 ns/op 2698 B/op 1 allocs/op
-BenchmarkAttrs/fastText_discard/40_args-8 413430 2689 ns/op 2698 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 2967360 367.3 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 3353967 356.3 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 2856321 388.9 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 2827572 376.6 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/5_args-8 3196188 376.0 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1770090 635.4 ns/op 640 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 2039012 642.2 ns/op 640 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1838562 622.1 ns/op 640 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 2066180 573.6 ns/op 640 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/10_args-8 1905164 624.8 ns/op 640 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 604632 1895 ns/op 2689 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 614727 1947 ns/op 2689 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 547798 1864 ns/op 2689 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 580722 1985 ns/op 2689 B/op 1 allocs/op
+BenchmarkAttrs/async_discard/40_args-8 657516 1926 ns/op 2689 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2318203 500.6 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2275015 530.1 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2239497 533.8 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2345541 519.9 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 2377508 507.7 ns/op 320 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1393738 900.7 ns/op 641 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1267099 880.2 ns/op 641 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1383918 878.0 ns/op 641 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1279138 897.7 ns/op 641 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 1270694 1037 ns/op 641 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 373773 2888 ns/op 2697 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 383184 2929 ns/op 2698 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 427410 2986 ns/op 2698 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 410481 3023 ns/op 2698 B/op 1 allocs/op
+BenchmarkAttrs/fastText_discard/40_args-8 426891 3097 ns/op 2698 B/op 1 allocs/op
PASS
-ok golang.org/x/exp/slog/benchmarks/zapbenchmarks 47.440s
+ok golang.org/x/exp/slog/benchmarks/zap_benchmarks 48.330s
diff --git a/slog/benchmarks/zerolog_benchmarks/zerolog.bench b/slog/benchmarks/zerolog_benchmarks/zerolog.bench
new file mode 100644
index 0000000..3a92daf
--- /dev/null
+++ b/slog/benchmarks/zerolog_benchmarks/zerolog.bench
@@ -0,0 +1,16 @@
+goos: linux
+goarch: amd64
+pkg: golang.org/x/exp/slog/benchmarks
+cpu: Intel(R) Xeon(R) CPU @ 2.20GHz
+BenchmarkAttrs/fastText_discard/5_args-8 6696618 181.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 7084600 175.6 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 6270475 187.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 6545570 186.5 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/5_args-8 6452163 184.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 4179442 281.9 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 4376378 274.7 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 4276617 285.3 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 4258966 279.2 ns/op 0 B/op 0 allocs/op
+BenchmarkAttrs/fastText_discard/10_args-8 3991080 293.3 ns/op 0 B/op 0 allocs/op
+PASS
+ok golang.org/x/exp/slog/benchmarks/zerolog_benchmarks 14.421s