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.
The
Merge
function currently checks if a key inother
exists inp
by iterating over all keys inp
which is redundant as we already have a faster way to look that up inp.m
.This reduces the asymptotic complexity of
Merge
from quadratic O(N2) down to linear O(N) whereN
is the number of properties.Also wrote a benchmark to measure the exact speedup and here are the results:
Merging hundred properties - 6x faster
Merging thousand properties - 37x faster
Merging 10K properties. - 300x faster
Merging 100K properties - 2600x faster
Before
After