Add sinks to benchmarks to prevent smart tools eliminating benchmarked code #1040
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.
In
binary_decode_packedbenchmarks we used "sink" variables to write the decoded values, and printed these sinks at the end to make sure they're not dropped.Do the same in the rest of the benchmarks to make sure no code is eliminated by a sufficiently smart compiler or VM.
Just as a sanity check I compared the numbers before and after this change, when compiled to Wasm with
-O2. The numbers do not change in a consistent (reproducible) and significant way. It's still good to be safe and use the benchmark results to avoid dropping code.