runtime: spinbitmutex performance differs between 1.24.0 and 1.24.1, what changed? #72117
Labels
BugReport
Issues describing a possible bug in the Go implementation.
compiler/runtime
Issues related to the Go compiler and/or runtime.
WaitingForInfo
Issue is not actionable because of missing required information, which needs to be provided.
Uh oh!
There was an error while loading. Please reload this page.
Go version
1.23.6, 1.24.0, 1.24.1
Output of
go env
in your module/workspace:What did you do?
I am running a performance test on z1d.metal AWS instances. These are 48 core Xeons. https://instances.vantage.sh/aws/ec2/z1d.metal
With 12 goroutines performing CPU intensive tasks on these 48 core processors, I see a very large performance decrease moving from 1.23.6 to 1.24.0, but 1.24.1 restores performance. Building the test with go 1.24.0 with
GOEXPERIMENT=nospinbitmutex
almost completely returns perf to 1.23.6 levelsI do not see a performance difference using 4 or fewer goroutines, which is what lead me to test using
nospinbitmutex
Here is the naive implementation of the test, each goroutine acts on a batch of roughly 100,000 messages, in order to reduce channel overhead.
What did you see happen?
What did you expect to see?
I expected 1.24.1 to have the same performance regression as 1.24.0.
The text was updated successfully, but these errors were encountered: