mbox series

[0/5] Optimization batch 12: miscellaneous unthemed stuff

Message ID pull.962.git.1622104642.gitgitgadget@gmail.com (mailing list archive)
Headers show
Series Optimization batch 12: miscellaneous unthemed stuff | expand

Message

Victoria Dye via GitGitGadget May 27, 2021, 8:37 a.m. UTC
This series depends on en/ort-perf-batch-11 textually, but is semantically
independent of it.

This short series has a few optimizations, but only one of which affects the
testcases of interest (namely, reducing our time spent on sorting an array).
It also fixes a few comments.

For the testcases mentioned in commit 557ac0350d ("merge-ort: begin
performance work; instrument with trace2_region_* calls", 2020-10-28), the
changes in just this series improves the performance as follows:

                     Before Series           After Series
no-renames:        5.622 s ±  0.059 s     5.235 s ±  0.042 s
mega-renames:     10.127 s ±  0.073 s     9.419 s ±  0.107 s
just-one-mega:   500.3  ms ±  3.8  ms   480.1  ms ±  3.9  ms


As a reminder, before any merge-ort/diffcore-rename performance work, the
performance results we started with were:

no-renames-am:      6.940 s ±  0.485 s
no-renames:        18.912 s ±  0.174 s
mega-renames:    5964.031 s ± 10.459 s
just-one-mega:    149.583 s ±  0.751 s


Elijah Newren (5):
  merge-ort: replace string_list_df_name_compare with faster alternative
  diffcore-rename: avoid unnecessary strdup'ing in break_idx
  diffcore-rename: enable limiting rename detection to relevant
    destinations
  Fix various issues found in comments
  merge-ort: miscellaneous touch-ups

 diffcore-rename.c                   | 52 ++++++++++++++++---
 diffcore.h                          |  2 +
 merge-ort.c                         | 78 +++++++++++++++++++----------
 t/t6423-merge-rename-directories.sh |  2 +-
 4 files changed, 99 insertions(+), 35 deletions(-)


base-commit: 76e253793c9a1d7fdd1836d5e4db26dabd3d713a
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-962%2Fnewren%2Fort-perf-batch-12-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-962/newren/ort-perf-batch-12-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/962