β‘ Optimize user action sequence hydration #5
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.
π‘ What:
Removed redundant
.clone()calls when extractinguser_actionsandmetadatafromThriftUserActionSequenceinUserActionSeqQueryHydrator::aggregate_user_action_sequence.π― Why:
The
uas_thriftstruct is passed by value (ownership is transferred) to the function. Previously, the code cloned the internal fields (Option<Vec<...>>andOption<Meta>) before unwrapping them. Since we own the struct, we can simply consume the fields (partial move), avoiding the potentially expensive allocation of cloning the user action vector.π Measured Improvement:
A proxy benchmark (
benchmark_repro.rs) mimicking the data structure and operation showed a significant performance improvement:PR created automatically by Jules for task 8614313356284375617 started by @sashimikun