test(fspy-benchmark): add a contended access row - #679
Merged
wan9chi merged 1 commit intoAug 18, 2026
Conversation
fspy benchmarklinuxmacoswindows |
wan9chi
force-pushed
the
claude/fspy-bench-contended-row
branch
from
August 18, 2026 02:38
8fb8396 to
e30b7f8
Compare
The thread count was one constant shared by every suite, fixed at two — enough to represent a normal tracked process, but not enough to make writers fight over the channel's counters. Each record costs two atomic read-modify-writes on words every other thread is touching, and two threads barely provoke that. The count moves onto the suite, so the existing rows keep their two threads and their comparability, and a new `access-contended` row runs the same opens under eight. It halves the iterations over half the opens, so four times the threads cost about the same wall clock. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
wan9chi
force-pushed
the
claude/fspy-bench-contended-row
branch
from
August 18, 2026 02:39
e30b7f8 to
6339eba
Compare
wan9chi
added a commit
that referenced
this pull request
Aug 18, 2026
## Motivation The benchmark's thread count was one constant shared by every suite, fixed at two. Two threads represent a normal tracked process, but they barely make writers fight over the IPC channel's counters, and every recorded access costs two atomic read-modify-writes on words every other thread is touching. Changes to how a record is claimed can therefore look free here while costing real time under a parallel build. The count moves onto the suite, so the existing rows keep their two threads and stay comparable with earlier runs, and a new `access-contended` row runs the same opens under eight. It halves the iterations over half the opens, so four times the threads cost about the same wall clock. Split out of [#675](#675), where it was used to measure claim-path changes. Replaces [#679](#679), which GitHub auto-closed and deleted the branch of when its base briefly absorbed this commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
The benchmark's thread count was one constant shared by every suite, fixed at two. Two threads represent a normal tracked process, but they barely make writers fight over the IPC channel's counters, and every recorded access costs two atomic read-modify-writes on words every other thread is touching. Changes to how a record is claimed can therefore look free here while costing real time under a parallel build.
The count moves onto the suite, so the existing rows keep their two threads and stay comparable with earlier runs, and a new
access-contendedrow runs the same opens under eight. It halves the iterations over half the opens, so four times the threads cost about the same wall clock.Split out of #675, where it was used to measure claim-path changes.
🤖 Generated with Claude Code