git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Peter Harris" <git@peter.is-a-geek.org>
To: "Jeff King" <peff@peff.net>
Cc: "Edward Ned Harvey" <git@nedharvey.com>, git@vger.kernel.org
Subject: Re: git performance
Date: Wed, 22 Oct 2008 17:13:56 -0400	[thread overview]
Message-ID: <eaa105840810221413m4d0ed51ejab28f66493a12a13@mail.gmail.com> (raw)
In-Reply-To: <20081022203624.GA4585@coredump.intra.peff.net>

On Wed, Oct 22, 2008 at 4:36 PM, Jeff King wrote:
> On Wed, Oct 22, 2008 at 04:17:16PM -0400, Edward Ned Harvey wrote:
>
>> So - I didn't see anything out there saying "git is fast because it
>> uses inotify" or anything like that.  Perhaps git would not help me at
>> all?  Because git still needs to stat all the files in the tree?
>
> Yes, it does stat all the files. How many files are you talking about,
> and what platform?  From a warm cache on Linux, the 23,000 files kernel
> repo takes about a tenth of a second to stat all files for me (and this
> on a several year-old machine). And of course many operations don't
> require stat'ing at all (like looking at logs, or diffs that don't
> involve the working tree).

Windows is rather slower than Linux, so differences are more obvious.
I find git feels "only" about 2x as fast as svn at status. svn has to
stat all of its base files too, whereas git has the index. git pull
(vs svn update) feels better than 2x faster, since git doesn't need to
walk the tree and lock every sub-dir before it even connects to the
remote server.

So we're not talking 'inotify' fast, but maybe half a cup of coffee
instead of a full cup if you have that many files.

"git-svn" is really quite good. I recommend you try a quick (trunk and
maybe one branch only, last few revisions only) import of your svn
tree to test with.

Peter Harris

  reply	other threads:[~2008-10-22 21:15 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-22 20:17 git performance Edward Ned Harvey
2008-10-22 20:36 ` Jeff King
2008-10-22 21:13   ` Peter Harris [this message]
2008-10-22 21:55   ` Edward Ned Harvey
2008-10-23  7:11     ` Andreas Ericsson
2008-10-23  7:11     ` Andreas Ericsson
2008-10-23  7:41     ` Andreas Ericsson
2008-10-23 12:16     ` Matthieu Moy
2008-10-23 16:39     ` Jeff King
     [not found]       ` <000001c9358f$232bac70$69830550$@com>
2008-10-24 14:29         ` Jeff King
2008-10-24 17:42           ` George Shammas
2008-10-24 19:06             ` Jakub Narebski
2008-10-24 17:53           ` Linus Torvalds
2008-10-24 18:20             ` Jeff King
2008-10-23 18:31     ` Daniel Barkalow
2008-10-23 22:24     ` Nanako Shiraishi
2008-10-24  3:56       ` Daniel Barkalow
2008-10-24  7:55     ` Pete Harlan
2008-10-24 23:10       ` Pete Harlan
2008-10-22 22:42 ` Jakub Narebski
2008-10-23  7:43   ` Andreas Ericsson
2008-10-23 13:04     ` Nguyen Thai Ngoc Duy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eaa105840810221413m4d0ed51ejab28f66493a12a13@mail.gmail.com \
    --to=git@peter.is-a-geek.org \
    --cc=git@nedharvey.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).