On Wed, Feb 09, 2022 at 07:10:38PM +0100, Christian Couder wrote: > On Wed, Feb 2, 2022 at 5:13 PM Patrick Steinhardt <ps@xxxxxx> wrote: > > > Skip computing the summary width when the user asked for us to be quiet. > > There is a --quiet option for git fetch, so here we can expect that it > will be used to test this speedup... > > > This gives us a small speedup of nearly 10% when doing a dry-run > > mirror-fetch in a repository with thousands of references being updated: > > > > Benchmark 1: git fetch --prune --dry-run +refs/*:refs/* (HEAD~) > > Time (mean ± σ): 34.048 s ± 0.233 s [User: 30.739 s, System: 4.640 s] > > Range (min … max): 33.785 s … 34.296 s 5 runs > > > > Benchmark 2: git fetch --prune --dry-run +refs/*:refs/* (HEAD) > > Time (mean ± σ): 30.768 s ± 0.287 s [User: 27.534 s, System: 4.565 s] > > Range (min … max): 30.432 s … 31.181 s 5 runs > > > > Summary > > 'git fetch --prune --dry-run +refs/*:refs/* (HEAD)' ran > > 1.11 ± 0.01 times faster than 'git fetch --prune --dry-run +refs/*:refs/* (HEAD~)' > > ...but --prune and --dry-run are used for testing. It would be nice if > this discrepancy was explained a bit. > > Otherwise the commit message and code look good to me. Yeah, I was hiding away the `--quiet` flag here by accident. I used `--prune` and `--dry-run` to trigger more lines to be printed to console and to not take into account the time it takes to update local refs and fetch objects. But doing so without these flags also demonstrates what I want to: Benchmark 1: git fetch --quiet +refs/*:refs/* (pks-fetch-pack-optim-v1~) Time (mean ± σ): 96.078 s ± 0.508 s [User: 91.378 s, System: 10.870 s] Range (min … max): 95.449 s … 96.760 s 5 runs Benchmark 2: git fetch --quiet +refs/*:refs/* (pks-fetch-pack-optim-v1) Time (mean ± σ): 88.214 s ± 0.192 s [User: 83.274 s, System: 10.978 s] Range (min … max): 87.998 s … 88.446 s 5 runs So again, I'll update the commit message. Thanks for your feedback! Patrick
Attachment:
signature.asc
Description: PGP signature