git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Patrick Steinhardt <ps@pks.im>
Date
Mar 22, 2021, 12:16 UTC
Message-ID
<YFiKqf8P0XVSca8L@ncase>
In-Reply-To
<xmqqk0q4ov95.fsf@gitster.g>
On Thu, Mar 18, 2021 at 05:13:58PM -0700, Junio C Hamano wrote:
Show 13 quoted lines
> Patrick Steinhardt <ps@pks.im> 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
Previous: Junio C HamanoNext: Patrick Steinhardt
Message 3 of 4 in “pack-bitmap: avoid traversal of objects referenced by uninteresting tag”
  1. pack-bitmap: avoid traversal of objects referenced by uninteresting tagPatrick Steinhardt, Mar 17, 2021
  2. Junio C HamanoMar 19, 2021
  3. Patrick SteinhardtMar 22, 2021
  4. pack-bitmap: avoid traversal of objects referenced by uninteresting tagPatrick Steinhardt, Mar 22, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.