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

Re: [PATCH 0/2] performance regression in mark_edges_uninteresting

From
Jeff King <peff@peff.net>
Date
Jan 20, 2014, 22:29 UTC
Message-ID
<20140120222936.GA25291@sigill.intra.peff.net>
In-Reply-To
<20140120212845.GA11451@sigill.intra.peff.net>
On Mon, Jan 20, 2014 at 04:28:45PM -0500, Jeff King wrote:
Show 8 quoted lines
>   [1/2]: t/perf: time rev-list with UNINTERESTING commits
>   [2/2]: list-objects: only look at cmdline trees with edge_hint
> 
> Here's t/perf/p0001 output that shows the problem:
> 
>   0001.5: rev-list --objects $commit --not --all
>   fbd4a703^         fbd4a703                  HEAD
>   0.04(0.04+0.00)   0.28(0.27+0.00) +600.0%   0.04(0.04+0.00) +0.0%

Those numbers are on git.git. Obviously 600% is a lot, but 24ms is not. However, the cost is a factor of the tree size times the number of refs. For the "homebrew.git" repository stored at GitHub, which has ~28,000 refs (mostly pointing at pull-request tips in refs/pull), the numbers are much more dramatic:

fbd4a703^ fbd4a703 HEAD 0.50(0.46+0.02) 8.23(8.17+0.06) +1546.0% 0.50(0.48+0.01) +0.0%

-Peff
Previous: Jeff KingNext: Jeff King
Message 9 of 13 in “performance regression in mark_edges_uninteresting”
  1. 0/2 performance regression in mark_edges_uninterestingJeff King, Jan 20, 2014
  2. 1/2 t/perf: time rev-list with UNINTERESTING commitsJeff King, Jan 20, 2014
  3. Jeff KingJan 20, 2014
  4. Thomas RastJan 20, 2014
  5. Jeff KingJan 20, 2014
  6. 2/2 list-objects: only look at cmdline trees with edge_hintJeff King, Jan 20, 2014
  7. Duy NguyenJan 20, 2014
  8. Jeff KingJan 21, 2014
  9. Jeff KingJan 20, 2014
  10. 0/2 performance regression in mark_edges_uninterestingJeff King, Jan 21, 2014
  11. 1/2 t/perf: time rev-list with UNINTERESTING commitsJeff King, Jan 21, 2014
  12. 2/2 list-objects: only look at cmdline trees with edge_hintJeff King, Jan 21, 2014
  13. Junio C HamanoJan 21, 2014

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.