diff options
| author | Josh Bleecher Snyder <josharian@gmail.com> | 2018-02-13 17:54:05 -0800 |
|---|---|---|
| committer | Josh Bleecher Snyder <josharian@gmail.com> | 2018-03-01 20:34:07 +0000 |
| commit | 7365fac2dbd01960268ee051ed03d961258d4ef4 (patch) | |
| tree | 26075f6023cdf143f3e60c7329f4843a88f0577e /src/runtime/error.go | |
| parent | 39fefa0709474d291af65af13bd2ac408ef5e9eb (diff) | |
| download | go-7365fac2dbd01960268ee051ed03d961258d4ef4.tar.xz | |
runtime: use bytes.IndexByte in findnull
bytes.IndexByte is heavily optimized.
Use it in findnull.
name old time/op new time/op delta
GoString-8 65.5ns ± 1% 40.2ns ± 1% -38.62% (p=0.000 n=19+19)
findnull is also used in gostringnocopy,
which is used in many hot spots in the runtime.
Fixes #23830
Change-Id: I2e6cb279c7d8078f8844065de684cc3567fe89d7
Reviewed-on: https://go-review.googlesource.com/97523
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/runtime/error.go')
| -rw-r--r-- | src/runtime/error.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/runtime/error.go b/src/runtime/error.go index e1291e1543..2435f98b7a 100644 --- a/src/runtime/error.go +++ b/src/runtime/error.go @@ -121,6 +121,7 @@ func printany(i interface{}) { // strings.IndexByte is implemented in runtime/asm_$goarch.s // but amusingly we need go:linkname to get access to it here in the runtime. //go:linkname stringsIndexByte strings.IndexByte +//go:noescape func stringsIndexByte(s string, c byte) int // panicwrap generates a panic for a call to a wrapped value method |
