Re: [PATCH 1/1] merge-ort: begin performance work; instrument with trace2_region_* calls
- From
Elijah Newren <newren@gmail.com>
- Date
- Jan 8, 2021, 21:50 UTC
- Message-ID
- <CABPp-BE4zyGa7=dOKifWhv-46__0YtfRZ39Q1JYT0JZ2HT0itA@mail.gmail.com>
- In-Reply-To
- <X/jHpZlSxwAxoUyq@nand.local>
On Fri, Jan 8, 2021 at 12:59 PM Taylor Blau <ttaylorr@github.com> wrote:
Show 10 quoted lines
> > On Fri, Jan 08, 2021 at 12:51:11PM -0800, Elijah Newren wrote: > > Overall timings, using hyperfine (1 warmup run, 3 runs for mega-renames, > > 10 runs for the other two cases): > > Ah, I love hyperfine. In case you don't already have this in your > arsenal, the following `--prepare` step is useful for measuring > cold-cache performance: > > --prepare='sync; echo 3 | sudo tee /proc/sys/vm/drop_caches'
/proc/sys/vm/drop_caches is definitely useful for cold-cache measurements and I've used it in other projects for that purpose. I think cold-cache testing makes sense for various I/O intensive areas such as object lookup, but I ignored it here as I felt the merge code is really about algorithmic performance. So, I instead went the other direction and ensured warm-cache testing by using a warmup run, in order to ensure that I wasn't putting one of the tests at an unfair disadvantage. (Side note: My script that runs the tests actually does more than the warmup run to ensure a fair playing field. For example, the script expires reflogs and runs a git prune before each hyperfine invocation, to make sure that each hyperfine run starts with a fully repacked repository with no loose objects. Without the expire & prune, enough perf testing of rebases in a short time period will result in a mysterious and gradual slowdown of all the test runs even without code changes...).
Show 17 quoted lines
> > === Goals === > > > > This patch is obviously just the beginning. Here are some of my goals > > that this measurement will help us achieve: > > > > * Drive the cost of rename detection down considerably for merges > > * After the above has been achieved, see if there are other slowness > > factors (which would have previously been overshadowed by rename > > detection costs) which we can then focus on and also optimize. > > * Ensure our rebase testcase that requires little rename detection > > is noticeably faster with merge-ort than with apply-based rebase. > > These are great, and I am looking forward to your work. > > > Signed-off-by: Elijah Newren <newren@gmail.com> > > Thanks, this patch looks good to me.
As always, thanks for taking a look.