Skip to content

strings: performance regression in strings/CountHard* benchmarks #80638

Description

@archanaravindar

Go version

Go1.27rc2, go version go1.28-devel_5cbe9d2fe2

Output of go env in your module/workspace:

GO111MODULE=''
GOAMD64='v1'
GOARCH='amd64'
GOAUTH='netrc'
GOBIN='/home/archanaravindar/Go/Go_master/go/bin'
GOCACHE='/home/archanaravindar/.cache/go-build'
GOCACHEPROG=''
GODEBUG=''
GOENV='/home/archanaravindar/.config/go/env'
GOEXE=''
GOEXPERIMENT='nodwarf5'
GOFIPS140='off'
GOFLAGS=''
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2580094643=/tmp/go-build -gno-record-gcc-switches'
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMOD='/home/archanaravindar/upstream/counthard/go/src/go.mod'
GOMODCACHE='/home/archanaravindar/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/archanaravindar/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/lib/golang'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/home/archanaravindar/.config/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/usr/lib/golang/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.25.12 X:nodwarf5'

What did you do?

Ran countHard tests in string package

What did you see happen?

Saw a performance regression on amd64 and ppc64le
(1.27rc2 vs 1.26.5 and master vs 1.26.5)

goos: linux
goarch: amd64
pkg: strings
cpu: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
             │   base.out   │ ../../../go1.27rc2/src/strings/new.out  │
             │    sec/op    │    sec/op      vs base                  │
CountHard1-8   90.51µ ±  4%   1172.52µ ± 5%  +1195.47% (p=0.000 n=10)
CountHard2-8   132.3µ ± 16%    1243.5µ ± 5%   +840.00% (p=0.000 n=10)
CountHard3-8   427.5µ ±  6%    1222.9µ ± 7%   +186.04% (p=0.000 n=10)
geomean        172.3µ           1.213m        +603.60%

This affects not just CountHard but multiple benchmarks exercising this path

What did you expect to see?

Expected to see similar performance as Go1.26.5

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions