[PR #8667/406cd2c7 backport][3.10] Improve performance of generating random WebSocket mask #8668
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 is a backport of PR #8667 as merged into master (406cd2c).
What do these changes do?
The mask was being generated with randint and than converted to bytes. We can skip a few steps and generate it with getrandbits() and pack it into bytes.
related RFC: https://datatracker.ietf.org/doc/html/rfc6455#section-5.3
Are there changes in behavior for the user?
No
Is it a substantial burden for the maintainers to support this?
no
I was looking at pings and noticed that most of the time is spent in randrange