Refactor RenetClient so channels are accessed more efficiently #154
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.
Problem
Currently you need a
HashMap
lookup to access channels in clients. On the server these hashmaps are accessed for every packet received.Solution
Use a
Vec
to store the channels so lookups are fast. Channels should be generated in monotonically increasing order, so in general there won't be any empty entries. Even if there are empty entries, at most 256 channels can be created, so the memory cost of bad channel assignment is not significant.Follow-up