Subject: Re: Git benchmarks at OpenOffice.org wiki

From: Jakub Narebski <[email-masked]>
Date: Fri, 04 May 2007 01:36:27 +0200

Robin Rosenberg wrote:
> torsdag 03 maj 2007 skrev Johannes Schindelin:
>> On Thu, 3 May 2007, Florian Weimer wrote:
>>> * Jakub Narebski:
>>> 
>>>> What I'm really concerned about is branch switch and merging branches, 
>>>> when one of the branches is an old one (e.g. unxsplash branch), which 
>>>> takes 3min (!) according to the benchmark. 13-25sec for commit is also 
>>>> bit long, but BRANCH SWITCHING which takes 3 MINUTES!?
>>> 
>>> IIRC, GIT accesses every file in the tree, not just the ones that need
>>> updating.  How many files were actually updated when you changed
>>> branches in your experiment?
>> 
>> No. Git does not access every file, but rather all stats. That is a huge 
>> difference. And it should not take _that_ long for ~64000 files. Granted, 
>> it will cause a substantial delay, but not in the range of minutes.
> 
> It's worse... On my laptop the switch took ~ten minutes, not three. 
> A diff --stat takes over six minutes!! For reference, dd:in the pack 
> file with my disk takes ~50 seconds.
> 
> The reason is simple. I have a lousy one gigabyte RAM only, while 
> git wants 1.7GB virtual to do the diff-stat, and 800 MB resident.
> The swap is having a party, 

That is nice to know where the culprit is: 197000 files and 24000
directories (132 projects), i.e. huge tree and not enogh memory.
This is yet another reason for splitting OOo repository into subprojects.
I do wonder if git can be more conservative in memory usage...

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git