Re: Performance issue of 'git branch'
- From
- Carlos R. Mafra <crmafra2@gmail.com>
- Date
- Jul 24, 2009, 23:46 UTC
- Message-ID
- <20090724234648.GA4616@Pilar.aei.mpg.de>
- In-Reply-To
- <alpine.LFD.2.01.0907241349390.3960@localhost.localdomain>
Sorry for the delay and missing the "strace -ttT" request, but today was a "Physics" day and took me longer to notice your email.
On Fri 24.Jul'09 at 14:21:20 -0700, Linus Torvalds wrote:
Show 5 quoted lines
> > What a huge difference! > > And the NO_CURL version really does load a lot faster in cold-cache. We're > not talking small differences:
With NO_CURL=1 the strace log contained 242 lines (vs 404), but the time difference was not as great as you got. But it was better:
0.55 +- 0.06 (for 8 runs)
So I repeated the tests with curl enabled and this time I got:
0.77 +- 0.03 (for 6 runs)
(yesterday I got 0.61 +- 0.08, so there is lot of noise)
So it is better, but not by the same factor as you saw. But I may have an explanation for this.
After I clear the cache I wait a few seconds to stabilize, and I do the 'time git branch' test when I see that there is no activity in the disk by looking at the 'btrace' output in another xterm.
I noticed that after dropping the cache and before I do the test there is lot of activity of something called 'preload', with lines which look like these:
8,0 0 42881 495.067655112 17777 Q R 51244367 + 552 [preload] 8,0 0 42882 495.067659931 17777 G R 51244367 + 552 [preload] 8,0 0 42883 495.067664401 17777 I R 51244367 + 552 [preload]
I hadn't noticed this before and now I checked that,
"preload is an adaptive readahead daemon that prefetches files mapped by applications from the disk to reduce application startup time."
So I guess that my tests here for your NO_CURL=1 idea is inconclusive, as I am not sure what preload is prefetching.