]> Cypherpunks repositories - gostls13.git/commit
internal/trace: use banding to optimize MMU computation
authorAustin Clements <austin@google.com>
Tue, 8 Aug 2017 22:15:32 +0000 (18:15 -0400)
committerAustin Clements <austin@google.com>
Mon, 5 Nov 2018 19:10:09 +0000 (19:10 +0000)
commit52ee654b25970a0b8c0ce9d2c8eda604df2026bb
treed573594fa756d6bd1f4aae836179e2c1680ce82d
parentc6c602a92612a855d8eb2f649f3dff75bb5fb9ad
internal/trace: use banding to optimize MMU computation

This further optimizes MMU construction by first computing a
low-resolution summary of the utilization curve. This "band" summary
lets us compute the worst-possible window starting in each of these
low-resolution bands (even without knowing where in the band the
window falls). This in turn lets us compute precise minimum mutator
utilization only in the worst low-resolution bands until we can show
that any remaining bands can't possibly contain a worse window.

This slows down MMU construction for small traces, but these are
reasonably fast to compute either way. For large traces (e.g.,
150,000+ utilization changes) it's significantly faster.

Change-Id: Ie66454e71f3fb06be3f6173b6d91ad75c61bda48
Reviewed-on: https://go-review.googlesource.com/c/60792
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
src/go/build/deps_test.go
src/internal/traceparser/gc.go