Re: Poor performance of git describe in big repos
- From
- Alex Bennée <kernel-hacker@bennee.com>
- Date
- May 30, 2013, 12:29 UTC
- Message-ID
- <CAJ-05NM9EhikDBP0izqWrnLbZW6RcHq_cH-20YTE08SZw5fjqA@mail.gmail.com>
- In-Reply-To
- <20130530114808.GD17475@serenity.lan>
The repo is a fairly hairy one as it includes two historically un-related but content related repos which I'm the process of cherry-picking stuff across.
11:58 ajb@sloy/x86_64 [work.git] >git count-objects -v count: 493 size: 4572 in-pack: 399307 packs: 1 size-pack: 1930755 prune-packable: 0 garbage: 0 size-garbage: 0
This was after a repack which did have slight negative effect on performance. The pack file is:
13:27 ajb@sloy/x86_64 [work.git] >ls -lh ./.git/objects/pack/* -r--r--r-- 1 ajb cvs 11M May 30 11:56 ./.git/objects/pack/pack-a9ba133a6f25ffa74c3c407e09ab030f8745b201.idx -r--r--r-- 1 ajb cvs 1.9G May 30 11:56 ./.git/objects/pack/pack-a9ba133a6f25ffa74c3c407e09ab030f8745b201.pack
I ran perf on it and the top items in the report where:
41.58% git libcrypto.so.1.0.0 [.] 0x6ae73 33.96% git libz.so.1.2.3.4 [.] 0xe0ec 10.39% git libz.so.1.2.3.4 [.] adler32 2.03% git [kernel.kallsyms] [k] clear_page_c
So I'm guessing it's spending a lot of non-cache efficient time un-packing and processing the deltas?
-- Alex.
On 30 May 2013 12:48, John Keeping <john@keeping.me.uk> wrote:
Show 10 quoted lines
> On Thu, May 30, 2013 at 11:38:32AM +0100, Alex Bennée wrote: >> One factor might be the size of my repo (.git is around 2.4G). Could >> this just be due to computational cost of searching through large >> packs to walk the commit chain? Is there any way to make this easier >> for git to do? > > What does "git count-objects -v" say for your repository? > > You may find that performance improves if you repack with "git gc > --aggressive".
-- Alex, homepage: http://www.bennee.com/~alex/