Keep active ciphers at the front and add metrics #12
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.
With this change the active ciphers will be kept at the front of the cipher list. This way the search latency is proportional to the number of active ciphers, rather than total number of ciphers. In practice only a fraction of ciphers in a server is active at any given time.
With this change I no longer shuffle the ciphers.
Benchmark is about the same:
The time to find the cipher can be tracked with
shadowsocks_time_to_cipher_ms
. Example: