From: David Kastrup <dak@gnu.org>
To: Shawn Pearce <spearce@spearce.org>
Cc: git <git@vger.kernel.org>
Subject: Re: [PATCH 1/2] blame: large-scale performance rewrite
Date: Sat, 26 Apr 2014 19:02:32 +0200 [thread overview]
Message-ID: <87d2g481nb.fsf@fencepost.gnu.org> (raw)
In-Reply-To: <CAJo=hJs=ap=Ct_PzOsO=vHmDVMvUF+nvbB7b67bgnmug+Yrohg@mail.gmail.com> (Shawn Pearce's message of "Sat, 26 Apr 2014 09:01:22 -0700")
Shawn Pearce <spearce@spearce.org> writes:
> Thanks for doing this. Unfortunately I can't read the patch itself as
> I am also trying to improve JGit's blame code for $DAY_JOB, and JGit
> is BSD licensed.
Actually, I'd have suggested asking $EMPLOYER to buy the rights for
looking at the code, but as I wrote previously, I'd seriously doubt that
he'd get his money's worth for use in a _Java_ implementation.
The C code I proposed is good for files with many small changes: I'd
suggest benchmarking your JGit code with some of them. If the JGit is
still dominated by unpacking, your implementation should be fine. The
current C version instead thrashes around digging through its own
all-purpose single linear list.
Here are two real-world test cases:
git://git.savannah.gnu.org/emacs.git
git blame [-M / -C] src/xdisp.c
http://repo.or.cz/r/wortliste.git
git blame [-M / -C] wortliste
The latter one is _really_ taking a severe hit from the O(n^2)
algorithms. If your benchmarks for that one still point mostly to the
unpacking, your jgit blame should be fine regarding the stuff
I reimplemented.
--
David Kastrup
next prev parent reply other threads:[~2014-04-26 17:02 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-25 23:56 [PATCH 1/2] blame: large-scale performance rewrite David Kastrup
2014-04-25 23:56 ` [PATCH 2/2] Mention "git blame" improvements in release notes David Kastrup
2014-04-26 17:28 ` Junio C Hamano
2014-04-26 18:28 ` David Kastrup
[not found] ` <xmqqzjj5s8hs.fsf@gitster.dls.corp.google.com>
2014-04-28 17:39 ` David Kastrup
2014-04-28 19:35 ` Junio C Hamano
2014-04-28 19:57 ` David Kastrup
2014-04-28 20:05 ` Ronnie Sahlberg
2014-04-28 20:26 ` David Kastrup
2014-04-26 0:53 ` [PATCH 1/2] blame: large-scale performance rewrite Shawn Pearce
2014-04-26 7:48 ` David Kastrup
2014-04-26 16:01 ` Shawn Pearce
2014-04-26 16:50 ` David Kastrup
2014-04-26 17:09 ` Shawn Pearce
2014-04-26 17:22 ` David Kastrup
2014-04-26 17:02 ` David Kastrup [this message]
2014-04-26 17:30 ` David Kastrup
2014-04-26 17:56 ` Shawn Pearce
2014-04-26 21:39 ` David Kastrup
2014-04-27 17:53 ` Shawn Pearce
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=87d2g481nb.fsf@fencepost.gnu.org \
--to=dak@gnu.org \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.org \
/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.