From: tytso@mit.edu
To: Jeff King <peff@peff.net>
Cc: Avery Pennarun <apenwarr@gmail.com>, git@vger.kernel.org
Subject: Re: Why is "git tag --contains" so slow?
Date: Fri, 2 Jul 2010 15:26:12 -0400 [thread overview]
Message-ID: <20100702192612.GM1333@thunk.org> (raw)
In-Reply-To: <20100701153842.GA15466@sigill.intra.peff.net>
On Thu, Jul 01, 2010 at 11:38:42AM -0400, Jeff King wrote:
>
> Here is a quick and dirty patch to implement what I suggested. With it,
> I get the same results as above, but it runs between 3 and 4 times as
> fast:
>
> real 0m0.621s
> user 0m0.588s
> sys 0m0.032s
I just tried your patch, and with a large number of tags (198 tags,
from v2.6.11 to v2.6.34 with all of the -rc releases of the linux
kernel), it is indeed faster: 8.5 seconds without the patch versus 2.3
seconds with the patch.
However, if I remove a large number of tags (since I know this is
something that was introduced since 2.6.33, so I made a shared clone
of the repository but then I removed all of the tags from 2.6.11
through 2.6.33, so there was only 19 tags in play), the time to
execute the git tag --contains became 1.3 seconds without the patch,
versus 2.9 seconds without the patch.
So with the oldest tags removed, your patch actually made things run
*slower* (2.3 vs 2.9 seconds, which was counter-intuitive to me), and
fastest way to speed things up was to restrict the tags that would be
searched.
Which gives me the technique I should use to solve my immediate
problem, but if the user knows that the patch was merged into mainline
within the last 4 months, maybe what would be better is either a way
to specify a regexp (or list) of tags that the user finds
"interesting" as --contains candidate, or a "--since=4 months"
argument.
- Ted
next prev parent reply other threads:[~2010-07-02 19:26 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-01 0:54 Why is "git tag --contains" so slow? Theodore Ts'o
2010-07-01 0:58 ` Shawn O. Pearce
2010-07-03 23:27 ` Sam Vilain
2010-07-01 1:00 ` Avery Pennarun
2010-07-01 12:17 ` tytso
2010-07-01 15:03 ` Jeff King
2010-07-01 15:38 ` Jeff King
2010-07-02 19:26 ` tytso [this message]
2010-07-03 8:06 ` Jeff King
2010-07-04 0:55 ` tytso
2010-07-05 12:27 ` Jeff King
2010-07-05 12:33 ` [RFC/PATCH 1/4] tag: speed up --contains calculation Jeff King
2010-10-13 22:07 ` Jonathan Nieder
2010-10-13 22:56 ` Clemens Buchacher
2011-02-23 15:51 ` Ævar Arnfjörð Bjarmason
2011-02-23 16:39 ` Jeff King
2010-07-05 12:34 ` [RFC/PATCH 2/4] limit "contains" traversals based on commit timestamp Jeff King
2010-10-13 23:21 ` Jonathan Nieder
2010-07-05 12:35 ` [RFC/PATCH 3/4] default core.clockskew variable to one day Jeff King
2010-07-05 12:36 ` [RFC/PATCH 4/4] name-rev: respect core.clockskew Jeff King
2010-07-05 12:39 ` Why is "git tag --contains" so slow? Jeff King
2010-10-14 18:59 ` Jonathan Nieder
2010-10-16 14:32 ` Clemens Buchacher
2010-10-27 17:11 ` Jeff King
2010-10-28 8:07 ` Clemens Buchacher
2010-07-05 14:10 ` tytso
2010-07-06 11:58 ` Jeff King
2010-07-06 15:31 ` Will Palmer
2010-07-06 16:53 ` tytso
2010-07-08 11:28 ` Jeff King
2010-07-08 13:21 ` Will Palmer
2010-07-08 13:54 ` tytso
2010-07-07 17:45 ` Jeff King
2010-07-08 10:29 ` Theodore Tso
2010-07-08 11:12 ` Jakub Narebski
2010-07-08 19:29 ` Nicolas Pitre
2010-07-08 19:39 ` Avery Pennarun
2010-07-08 20:13 ` Nicolas Pitre
2010-07-08 21:20 ` Jakub Narebski
2010-07-08 21:30 ` Sverre Rabbelier
2010-07-08 23:10 ` Nicolas Pitre
2010-07-08 23:15 ` Nicolas Pitre
2010-07-08 11:31 ` Jeff King
2010-07-08 14:35 ` Johan Herland
2010-07-08 19:06 ` Nicolas Pitre
2010-07-07 17:50 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100702192612.GM1333@thunk.org \
--to=tytso@mit.edu \
--cc=apenwarr@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.