From: Keith Randall Date: Fri, 11 Apr 2025 23:35:13 +0000 (-0700) Subject: path: add Join benchmark X-Git-Tag: go1.25rc1~481 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e278a789b61ffbdf4f6ca8accf43ab04148cd551;p=gostls13.git path: add Join benchmark This is a case where CL 653856 saves an allocation. │ old │ new │ │ sec/op │ sec/op vs base │ Join-24 73.57n ± 1% 60.27n ± 1% -18.07% (p=0.000 n=10) │ old │ new │ │ B/op │ B/op vs base │ Join-24 48.00 ± 0% 24.00 ± 0% -50.00% (p=0.000 n=10) │ old │ new │ │ allocs/op │ allocs/op vs base │ Join-24 2.000 ± 0% 1.000 ± 0% -50.00% (p=0.000 n=10) Change-Id: I56308262ca73a7ab9698b54fd8681f5b44626995 Reviewed-on: https://go-review.googlesource.com/c/go/+/665075 Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI Reviewed-by: Cherry Mui --- diff --git a/src/path/path_test.go b/src/path/path_test.go index a57286f6b8..6bd7a2cdad 100644 --- a/src/path/path_test.go +++ b/src/path/path_test.go @@ -5,6 +5,7 @@ package path_test import ( + "path" . "path" "runtime" "testing" @@ -234,3 +235,14 @@ func TestIsAbs(t *testing.T) { } } } + +func BenchmarkJoin(b *testing.B) { + b.ReportAllocs() + parts := []string{"one", "two", "three", "four"} + s := parts[0] + for b.Loop() { + parts[0] = s + s = path.Join(parts...) + s = s[:3] + } +}