From: Thomas Rast Date: Tue, 14 Feb 2012 11:34:07 GMT Subject: Re: git status: small difference between stating whole repository and small subdirectory Message-ID: <8762f9k5sg.fsf@thomas.inf.ethz.ch> In-Reply-To: Piotr Krukowiecki writes: > On Fri, Feb 10, 2012 at 10:42 AM, Piotr Krukowiecki > wrote: >> I compared stating whole tree vs one small subdirectory, and I >> expected that for the subdirectory status will be very very fast. >> After all, it has only few files to stat. But it's not fast. Why? >> >> >> With cold cache (echo 3 | sudo tee /proc/sys/vm/drop_caches): >> >> $ time git status    > /dev/null >> real    0m41.670s >> user    0m0.980s >> sys     0m2.908s >> >> $ time git status -- src/.../somedir   > /dev/null >> real    0m17.380s >> user    0m0.748s >> sys     0m0.328s [...] > I can't reproduce this behavior at the moment. 'status' on the > directory takes about 1.5s instead of 17s. status on whole repository > takes 27s. > This is my work repository, so it was changed today. To me these timings smell like a combination of either a network filesystem or a slow/busy disk, and non-packed repositories. Next time this happens look at 'git count-objects', run 'git gc' and redo the timings. If you are indeed on a network filesystem, also look at the core.preloadIndex setting. -- Thomas Rast trast@{inf,student}.ethz.ch