Re: Performance issue of 'git branch'
- From
- Carlos R. Mafra <crmafra2@gmail.com>
- Date
- Jul 23, 2009, 16:07 UTC
- Message-ID
- <20090723160740.GA5736@Pilar.aei.mpg.de>
- In-Reply-To
- <7vtz146mgr.fsf@alter.siamese.dyndns.org>
On Wed 22.Jul'09 at 21:40:36 -0700, Junio C Hamano wrote:
> Is the cold cache performance of "git branch" to list your > local branches that important?
I simply felt like something not optimal was going on, and in some sense I still feel it even with Linus' patch applied...
Don't get me wrong, I am super happy that Linus fixed it so quickly and I am grateful for that, but I am surely missing some git internal reason why 'git branch' is not instantaneous as I _naively_ expected.
Having learned about .git/packed-refs last night, today I tried this (with cold cache),
[mafra@Pilar:linux-2.6]$ time awk '{print $2}' .git/packed-refs |grep heads| awk -F "/" '{print $3}' 0.00user 0.00system 0:00.12elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (3major+311minor)pagefaults 0swaps 27-stable 28-stable 29-stable 30-stable dev-private master option sparse stern
and notice how that makes my pitiful harddisc look like Linus' SSD! And the result is the same.
[ If some branches are not inside .git/packed-refs but are listed in .git/refs/heads (like some of them were last night), it would require some modification to the script, but it would still be faster ]
However, I know that I am missing something here and I would be happy to learn what.
Thanks in advance, Carlos