Re: [ANNOUNCE] Git v2.24.0-rc0
- From
Jeff King <peff@peff.net>
- Date
- Oct 22, 2019, 06:42 UTC
- Message-ID
- <20191022064252.GA11308@sigill.intra.peff.net>
- In-Reply-To
- <CABPp-BG0Vrdo_w-e270oauLwHoLyaiTHKpfOwgLNBoeikoqq-g@mail.gmail.com>
On Mon, Oct 21, 2019 at 04:04:22PM -0700, Elijah Newren wrote:
Show 6 quoted lines
> > 4211.3: git log --follow [...]8.56(8.41+0.15) -0.2% 3.67(3.53+0.13) -57.2% > > Many nice speedups here, not just commit-graph (the rev-list cases) > but also log -L (from sg/line-log-tree-diff-optim, I believe), and log > --follow. I'm curious if the log --follow speedup comes from sg's > series or something else...
The "log --follow" speedup comes from turning on commit-graphs. You can see a similar effect without "--follow", since "git log <path>" is going to be dominated by the commit traversal, and not accessing the trees (especially if <path> is at the top-level).
Show 5 quoted lines
> > 0001.9: rev-list --objects $commit --not --all 0.08(0.05+0.03) 0.08(0.05+0.03) +0.0% 0.09(0.07+0.02) +12.5% > > Looks like this one increased too, with a similar magnitude to the > 7300.2 you pointed out. But the base is kinda small; is this just > noise?
Probably. I also frequently run the perf suite between major version releases, and this kind of noise is quite common.
> I'm also curious what change it was that made these rebase tests faster.
Perf changes of this magnitude are usually pretty easy to bisect. You can even do:
git bisect start --term-old=slow --term-new=fast
so you don't have to confuse yourself with opposite good/bad markers. I just ran:
make && (cd t/perf && GIT_SKIP_TESTS=p3400.[3456] ./p3400*)
at each stopping point and eyeballed the resulting time (which for some reason seems to be about 10x faster than Stolee's machine, but does still show the same relative speedup). I was surprised that this also yields 31b1de6a09 (commit-graph: turn on commit-graph by default, 2019-08-13). I wouldn't have expected commit access to dominate the rebase time so much.
-Peff