core/benches: Add benchmark for apply_inbound #95
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 commit adds a small benchmark test for the
apply_inbound
method. This allows benchmarking the usage ofVec
orSmallVec
in theInboundUpgradeApplyState
state machine.The benchmark executes a minimal multistream-select listener upgrade on an in-memory connection and then runs the
Ready
upgrade on top of the negotiated in-memory connection. The protocol negotiated in the first step is either stored in aVec
or aSmallVec
.I am unable to optimize the benchmark such that
SmallVec
has a significant performance benefit overVec
. I would love to be proven wrong, i.e. I would love for someone to find a benchmark that does show a significant difference.You can replicate these results by running:
(Note on the protocol name, I was initially testing the failure case.)