On Fri, Jan 8, 2021 at 12:59 PM Taylor Blau <ttaylorr@xxxxxxxxxx> wrote: > > 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...). > > === 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@xxxxxxxxx> > > Thanks, this patch looks good to me. As always, thanks for taking a look.