Thread (10 messages) 10 messages, 2 authors, 2016-06-15

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

From: Jeff King <hidden>
Date: 2016-06-15 22:59:42

On Mon, Jan 20, 2014 at 04:28:45PM -0500, Jeff King wrote:
  [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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help