Thread (10 messages) flat view 10 messages, 4 authors, 2016-06-15

Re: git status: small difference between stating whole repository and small subdirectory

From: Thomas Rast <hidden>
Date: 2016-06-15 22:53:04

Piotr Krukowiecki [off-list ref] writes:
On Fri, Feb 10, 2012 at 10:42 AM, Piotr Krukowiecki
[off-list ref] wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help