Optimize memory footprint of serde in RPC #577
Merged
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.
Description
This PR optimize memory footprint of RPC (i.e., memory used by serde).
Serde uses up more than 10x memory to deserialize a json message when using
#[serde(flatten)]
and#[serde(tag = "request"]
.In our case, we cannot handle more than 2M message because serde will allocation more than 100M bytes memory. The root cause is still unknown. With this PR, we can safely handle large requests in our services.
Note that this PR does not fix the Swift SDK accordingly. I'll fix it in later PRs.
Type of change (select or add applied and delete the others)
How has this been tested?
CI tests.
Checklist
master
.