aboutsummaryrefslogtreecommitdiff
path: root/src/path/path_test.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2025-04-11 16:35:13 -0700
committerKeith Randall <khr@google.com>2025-04-14 08:06:30 -0700
commite278a789b61ffbdf4f6ca8accf43ab04148cd551 (patch)
treee34b25cb8e89c8c2369e40042d21bba4c76253c5 /src/path/path_test.go
parent80bff42fdd0380c09f4df35c4baacb9cfdae5aae (diff)
downloadgo-e278a789b61ffbdf4f6ca8accf43ab04148cd551.tar.xz
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 <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/path/path_test.go')
-rw-r--r--src/path/path_test.go12
1 files changed, 12 insertions, 0 deletions
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]
+ }
+}