-
erifan01 authored
The current code is not optimized for cases where the length of the substring to be searched is between 9 bytes and 32 bytes. This CL optimizes the situations. Benchmark: name old time/op new time/op delta pkg:strings goos:linux goarch:arm64 IndexHard1-8 1.06ms ± 0% 1.06ms ± 0% -0.44% (p=0.000 n=7+8) IndexHard2-8 1.25ms ± 1% 1.26ms ± 2% ~ (p=0.328 n=8+8) IndexHard3-8 2.85ms ± 1% 1.18ms ± 1% -58.59% (p=0.000 n=8+8) IndexHard4-8 2.90ms ± 1% 2.87ms ± 1% -0.96% (p=0.021 n=8+8) pkg:bytes goos:linux goarch:arm64 IndexByte/4M-8 726124.200000ns +- 6% 560021.400000ns +-20% -22.88% (p=0.008 n=5+5) IndexRune/4M-8 928768.600000ns +- 0% 793144.600000ns +- 6% -14.60% (p=0.008 n=5+5) Change-Id: Ieebeb784ae69b2a0642ea96e9486a1d120923568 Reviewed-on: https://go-review.googlesource.com/109895Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
f8ef6ed2