9 Commits

Author SHA1 Message Date
Bryan Boreham
3309d09ad8 Remove slower mergers 2018-06-22 11:59:43 +00:00
Bryan Boreham
1706746a32 Faster report merging through mutating objects
When we know we have the only reference to a Report or Node object we
can avoid copying the data to change it. Add "Unsafe" variants of
various Merge operations which mutate the receiver, and a new Merger
which takes advantage of them.
2018-06-22 11:59:43 +00:00
Mike Lang
d20381d30b merger: Pass reports via closure, instead of by reference in args
This is an alternate way of solving the same problem as 4007a902a264e5ff2c3be6b269ade515c9c1c145,
but in a nicer way. Compared to using pointers, this approach more obviously preserves the original
behaviour, and is arguably more readable than the original code.

Credit to @rade for this approach.
2016-11-29 07:18:08 -08:00
Mike Lang
8f2e3e7d9b merger: Fix a pointer bug that trashed the merge process
Turns out that when iterating in go, &loop_var is the same address every time
2016-11-29 07:18:08 -08:00
Mike Lang
7d93e2cfe7 merger: Pass pointers, not structs
just in one function, where two of them are passed at once.
This was causing errors because it was too large to fit the stack.
2016-11-29 07:17:16 -08:00
Matthias Radestock
902ba88479 make smartMerger.Merge merge reports in parallel
for reduced latency
2016-08-24 08:02:23 +01:00
Tom Wilkie
2dae03501e Remove the caching 2016-05-09 10:08:14 +01:00
Tom Wilkie
71d3126c82 Limit merge cache to 200 entries and expire entries old than merge window. 2016-05-06 17:54:57 +01:00
Tom Wilkie
54a760a56d Log(n) complexity report merger. 2016-05-04 17:53:09 +01:00