Re: Terrible bad performance for it blame --date=iso -C -C master -- <file>
- From
Samuel Lijin <sxlijin@gmail.com>
- Date
- Mar 31, 2017, 16:23 UTC
- Message-ID
- <CAJZjrdXyRqs=oscynWghB13OiR8qjP10O2EV-wiP-acb7wqY-A@mail.gmail.com>
- In-Reply-To
- <xmqq60ip1m0f.fsf@gitster.mtv.corp.google.com>
Hi Ulrich,
Is there any chance you could share the repo where this is coming from?
This is actually something a colleague and I are looking into seeing if we can crunch out some performance gains since -C -C isn't threaded.
Sam
On Fri, Mar 31, 2017 at 10:52 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 23 quoted lines
> "Ulrich Windl" <Ulrich.Windl@rz.uni-regensburg.de> writes: > >> I was running "vc-annotate" in Emacs for a file from a large >> repository (>40000 files, a big percentage being binary, about 10 >> commits). For the first file the result was presented rather soon, but >> for a second file the command did not finish even after about 10 >> minutes! >> >> The file in question is a rather short text file (124 kB), and >> according to git log it has one commit. >> >> While being bored, I did an strace of the command to find out that a >> huge number of files is inspected. > > With -C -C the user (vc-annotate?) is asking to inspect huge number > of files, to find if the contents of the file (except for the part > that came from its own previous version) came from other existing > files. So this is very much expected. > > It might not be a bad idea to teach "blame" not to pay attention to > any path that is marked as "-diff" (e.g. binary files) when trying > to see if remaining contents appeared by borrowing from them. We do > not have that heuristics (yet).