Subject: Re: [PATCH] pack-bitmap: avoid traversal of objects referenced by uninteresting tag

From: Patrick Steinhardt <[email-masked]>
Date: Mon, 22 Mar 2021 13:16:49 +0100

On Thu, Mar 18, 2021 at 05:13:58PM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <[email-masked]> writes:
> 
> > While most benchmarks are probably in the range of noise, the newly
> > added 5310.8 benchmark shows a performance improvement of 25600%.
> 
> which sounds impressive, but ...
> 
> > +test_perf 'rev-list with negation (objects)' '
> > +	git rev-list --not --all --use-bitmap-index --objects >/dev/null
> > +'
> 
> ... is this an interesting use case to begin with, without any
> positive end?

Not at all, but it's easy enough to end up with something similar. E.g.
`git rev-list $TAG --not --all` wouldn't typically show anything at all
if `$TAG` is covered by a revision either, but it shows the same
speedup.

I've changed the benchmark to be a bit more realistic here. I've also
added a second benchmark which shows a modest 16-20% speedup when using
`git rev-list HEAD --not $TAG`, where `HEAD` and `$TAG` point to the
same commit. There's probably other cases that may show speedups, but I
hope those are good enough for now.

Patrick