-
Notifications
You must be signed in to change notification settings - Fork 527
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add project for running microbenchmarks #81
Merged
badrishc
merged 19 commits into
microsoft:main
from
PaulusParssinen:resp-microbenchmarks
Mar 25, 2024
Merged
Add project for running microbenchmarks #81
badrishc
merged 19 commits into
microsoft:main
from
PaulusParssinen:resp-microbenchmarks
Mar 25, 2024
Conversation
This file contains 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
PaulusParssinen
changed the title
Add project for running microbenchmerks
Add project for running microbenchmarks
Mar 22, 2024
badrishc
reviewed
Mar 25, 2024
badrishc
approved these changes
Mar 25, 2024
TedHartMS
approved these changes
Mar 25, 2024
* In the low-level read benchmarks, OperationsPerInvoke should amortize the small noise from the pinning * In write benchmarks, OperationsPerInvoke should allow the comparing the benchmarks which use random values to the other constant integer benches
Tweaked the benchmarks a bit more and added link to the BDN best practices in the docs. edit: 9d1fd74 adds default configuration to remove the Dynamic PGO overhead for .NET 8 which enable it by default. Also removed .NET 6 and 7 TFMs to simplify the command as the BDN project is primarily intended for contributors. |
This reverts commit 2625443.
The TFM is required for running benchmarks against it after all.
TedHartMS
reviewed
Mar 25, 2024
badrishc
approved these changes
Mar 25, 2024
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
This PR adds a BenchmarkDotNet project to the benchmarks directory for future microbenchmarks. I included some initial RESP-protocol low-level integer reading and writing benchmarks as an example, which will likely be tweaked more later. The fact that everything takes pointers instead of, say
Span<T>
makes it a little bit painful to write microbenchmarks at the moment.Having shared benchmark suite that is precise and reproducible will allow us to substantiate future performance PRs with real data. BenchmarkDotNet also has loads of knobs to configure it for pretty much any benchmarking needs.