Refactor: memory-efficient geo file decoder#934
Merged
Loyalsoldier merged 4 commits intov2fly:masterfrom Apr 30, 2021
Loyalsoldier:refactor-geodata
Merged
Refactor: memory-efficient geo file decoder#934Loyalsoldier merged 4 commits intov2fly:masterfrom Loyalsoldier:refactor-geodata
Loyalsoldier merged 4 commits intov2fly:masterfrom
Loyalsoldier:refactor-geodata
Conversation
Contributor
|
It is better if it can be made a option, instead of something fixed. |
xiaokangwang
approved these changes
Apr 26, 2021
Contributor
xiaokangwang
left a comment
There was a problem hiding this comment.
I would like to advise making this a option. Please only merge after a stable release.
Contributor
|
As a side effect, this impl causes v2ray-core to have full cpu usage, hang and even become unresponsive for a few seconds at startup (test with default geo files). Think twice? |
Contributor
|
This change my subject to revert, please keep your branch. |
xiaokangwang
added a commit
that referenced
this pull request
May 4, 2021
This reverts commit 7e87670
xiaokangwang
added a commit
that referenced
this pull request
May 4, 2021
This reverts commit 7e87670
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 PR implements a simple decoder based on LEB128 used in protobuf. It reads geo files byte by byte to reduce peak memory usage when V2Ray parses configuration.
If the decoder fails to decode the geo file, it will fallback to the original ReadFile method to keep backward compatibility.
About protobuf encoding and decoding, read https://developers.google.com/protocol-buffers/docs/encoding