All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Adrian Ratiu <adrian.ratiu@collabora.com>
Cc: git@vger.kernel.org
Subject: Re: Performance regression in "update" hooks
Date: Mon, 2 Mar 2026 15:27:22 +0100	[thread overview]
Message-ID: <aaWeSu-d1FMz_sW8@pks.im> (raw)
In-Reply-To: <874imy7220.fsf@collabora.com>

On Mon, Mar 02, 2026 at 04:12:39PM +0200, Adrian Ratiu wrote:
> On Mon, 02 Mar 2026, Adrian Ratiu <adrian.ratiu@collabora.com> wrote:
> > On Mon, 02 Mar 2026, Patrick Steinhardt <ps@pks.im> wrote:
> >> Hi,
> >>
> >> Bencher has alerted me that there's been two performance regressions in
> >> git-receive-pack(1) [1] and git-fetch(1) [2].
> >>
> >> The first one is quite easy to reproduce with the benchmarks at [3] and
> >> bisects to fc148b146a (receive-pack: convert update hooks to new API,
> >> 2026-01-28):
> >>
> >>   $ cd receive-refs
> >>   $ ./run --revisions /path/to/your/git/repo \
> >>       fc148b146ad41be71a7852c4867f0773cbfe1ff9~,fc148b146ad41be71a7852c4867f0773cbfe1ff9 \
> >>       --parameter-list refformat reftable \
> >>       --parameter-list refcount 10000
> >>
> >>   Benchmark 1: receive: many refs (refformat = reftable, refcount = 10000, revision = fc148b146ad41be71a7852c4867f0773cbfe1ff9~)
> >>     Time (mean ± σ):     182.0 ms ±   2.7 ms    [User: 91.5 ms, System: 89.3 ms]
> >>     Range (min … max):   175.8 ms … 185.0 ms    15 runs
> >>
> >>   Benchmark 2: receive: many refs (refformat = reftable, refcount = 10000, revision = fc148b146ad41be71a7852c4867f0773cbfe1ff9)
> >>     Time (mean ± σ):     484.6 ms ±  27.6 ms    [User: 176.2 ms, System: 376.1 ms]
> >>     Range (min … max):   406.2 ms … 495.1 ms    10 runs
> >>
> >>   Summary
> >>     receive: many refs (refformat = reftable, refcount = 10000, revision = fc148b146ad41be71a7852c4867f0773cbfe1ff9~) ran
> >>       2.66 ± 0.16 times faster than receive: many refs (refformat = reftable, refcount = 10000, revision = fc148b146ad41be71a7852c4867f0773cbfe1ff9)
> >>
> >> I've Cc'd Adrian.
> >
> > Hi Patrick,
> >
> > I looked at the commits before and after the many-refs test regression
> > and it appears the regressions started after Junio landed v2 of the
> > config series in next [1], which might cause it.
> >
> > v2 was not ready to land. I sent v3 yesterday addressing all the
> > feedback, didn't even realize v2 landed. :)
> >
> > Does the regression go away if you revert [1] ?
> >
> > I don't have the benchmark setup and it might be easier for you to
> > confirm?

All you need is a normal development infra and hyperfine. The
benchmarking scripts in the repo I linked should then "just work" with
the above invocation.

[snip]
> Actually I think these are two separate issues.
> 
> I will reproduce and look into the regression which bisected to
> c148b146a (receive-pack: convert update hooks to new API,  2026-01-28).

Perfect, thanks!

Patrick

  reply	other threads:[~2026-03-02 14:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-02  7:17 Performance regression in "update" hooks Patrick Steinhardt
2026-03-02 13:37 ` Adrian Ratiu
2026-03-02 14:12   ` Adrian Ratiu
2026-03-02 14:27     ` Patrick Steinhardt [this message]
2026-03-02 17:50       ` Jeff King
2026-03-02 18:02         ` Adrian Ratiu
2026-03-02 18:54           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aaWeSu-d1FMz_sW8@pks.im \
    --to=ps@pks.im \
    --cc=adrian.ratiu@collabora.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.