From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Thomas Rast <trast@student.ethz.ch>
Subject: Re: [PATCH 5/5] (BROKEN) get_merge_bases_many(): walk from many tips in parallel
Date: Wed, 29 Aug 2012 07:08:12 -0400 [thread overview]
Message-ID: <20120829110812.GA14069@sigill.intra.peff.net> (raw)
In-Reply-To: <7vvcg2y4bk.fsf@alter.siamese.dyndns.org>
On Tue, Aug 28, 2012 at 04:39:11PM -0700, Junio C Hamano wrote:
> > git rev-list --committer=torvalds@linux-foundation.org \
> > --max-parents=2 --min-parents=2 --parents v3.5..v3.6-rc2 >RL
> >
> > cmd='
> > while read result parent1 parent2
> > do
> > $GIT merge-base $parent1 $parent2
> > done <RL
> > '
>
> I have this suspicion that it is spending most of its time in
> insert-by-date. Luckily, merge_bases_many() is totally outside of
> the usual revision traversal and its use of the commit list is
> pretty well isolated.
>
> Peff, can I interest you into resurrecting your $gmane/174007 and
> $gmane/174008 (we do not need pop_commit_from_queue() in the latter;
> everything can stay as static to commit.c for now) to see how well
> priority queue based approach would perform?
I did a quick port of merge_bases_many and get_merge_bases_many to use
priority queues, but I didn't see any speedup at all on the above test
case. According to perf, we spend most of our time in zlib, inflating
commits. Only 1% is spent on commit_list_insert_by_date, which is about
the same amount spent on queue insertion after my patches.
Patches follow, just for reference.
[1/2]: basic priority queue implementation
[2/2]: commit: use a priority queue in merge base functions
-Peff
next prev parent reply other threads:[~2012-08-29 11:08 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-27 23:11 [PATCH 0/5] optimize fast-forward checks Junio C Hamano
2012-08-27 23:11 ` [PATCH 1/5] in_merge_bases(): support only one "other" commit Junio C Hamano
2012-08-27 23:12 ` [PATCH 2/5] receive-pack: use in_merge_bases() for fast-forward check Junio C Hamano
2012-08-27 23:12 ` [PATCH 3/5] http-push: " Junio C Hamano
2012-08-27 23:12 ` [PATCH 4/5] in_merge_bases(): omit unnecessary redundant common ancestor reduction Junio C Hamano
2012-08-27 23:12 ` [PATCH 5/5] (BROKEN) get_merge_bases_many(): walk from many tips in parallel Junio C Hamano
2012-08-28 1:25 ` Junio C Hamano
2012-08-28 21:35 ` Junio C Hamano
2012-08-28 23:39 ` Junio C Hamano
2012-08-29 11:08 ` Jeff King [this message]
2012-08-29 11:10 ` [PATCH 1/2] basic priority queue implementation Jeff King
2012-08-29 11:11 ` [PATCH 2/2] commit: use a priority queue in merge base functions Jeff King
2012-08-29 16:36 ` Junio C Hamano
2012-08-29 20:53 ` Jeff King
2012-08-29 20:55 ` Jeff King
2012-08-29 21:00 ` Jeff King
2012-08-29 21:05 ` Jeff King
2012-08-30 12:54 ` Jeff King
2012-08-30 13:03 ` Jeff King
2012-08-30 13:24 ` Jeff King
2012-08-30 16:33 ` Junio C Hamano
2012-08-30 21:48 ` Jeff King
2012-08-30 22:16 ` Junio C Hamano
2012-08-30 16:23 ` Junio C Hamano
2012-08-30 21:31 ` Jeff King
2012-08-30 21:59 ` Junio C Hamano
2012-08-29 21:18 ` Junio C Hamano
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=20120829110812.GA14069@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=trast@student.ethz.ch \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).