-
Notifications
You must be signed in to change notification settings - Fork 1k
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
[mplex] Add benchmark, tweak default split_send_size
.
#1834
Conversation
With both TCP and memory transports. As a result, change the default `split_send_size` to 8KiB.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am in favor of the data driven approach.
split_send_size
limits the maximum amount of data a substream can send in one go. Do I understand correctly that the underlying motivation for this mechanism is to control the amount of latency a substream can induce on another substream, by enforcing interleaving at a certain packet size?
As far as I'm concerned, the motivation is not primarily better interleaving of substream write operations, though that may be a side-effect. My reasoning here is two-fold:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for drawing the bigger picture. This looks good to me.
This PR supersedes #802. It includes a benchmark that sends and receives 1MiB of data via TCP and memory transports with varying choices for the
split_send_size
. Always using the plaintext protocol for "authentication". Typical results from my side look as follows:Based on such numbers, and probably not surprisingly, 8KiB seems to be a good default, as it also is the buffer size of the underlying
Framed
codec. Hence this PR changes the default from1KiB
to8KiB
.