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