| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | # Run and compare benchmarks.
# This requires a version of benchstat that supports
# the -ignore flag. The flag was added on or before 13 January 2023,
# so a compatible version can be obtained by running
#    go install golang.org/x/perf/cmd/benchstat@latest
count = 10
default: compare-zap compare-zerolog
compare-%: %_benchmarks/out.bench slog.bench
	benchstat -ignore pkg $^
slog.bench: *.go ../*.go ../../go.mod
	go test -run NONE -bench . -count $(count) > $@
slog-nopc.bench: *.go ../*.go ../../go.mod
	go test -nopc -run NONE -bench . -count $(count) > $@
%_benchmarks/out.bench: %_benchmarks/*.go %_benchmarks/go.mod
	go test -C $*_benchmarks  -bench . -count $(count) > $@
# Don't delete the out.bench files after a comparison.
.PRECIOUS: %_benchmarks/out.bench
 |