The Merge function currently checks if a key in other exists in p by iterating over all keys in p which is redundant as we already have a faster way to look that up in p.m.
This reduces the asymptotic complexity of Merge from quadratic O(N2) down to linear O(N) where N is the number of properties.
Also wrote a benchmark to measure the exact speedup and here are the results:
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