git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Sixt <j6t@kdbg.org>
To: Dun Peal <dunpealer@gmail.com>
Cc: Joshua Jensen <jjensen@workspacewhiz.com>,
	Tay Ray Chuan <rctay89@gmail.com>,
	Wilbert van Dolleweerd <wilbert@arentheym.com>,
	Git ML <git@vger.kernel.org>
Subject: Re: Inexplicably deteriorating performance of Git repositories on Windows
Date: Wed, 24 Nov 2010 23:06:17 +0100	[thread overview]
Message-ID: <201011242306.17834.j6t@kdbg.org> (raw)
In-Reply-To: <AANLkTi=X724OJgUvG0Ggu3OwxyaJprr9CLL+t+x=MbTO@mail.gmail.com>

On Mittwoch, 24. November 2010, Dun Peal wrote:
> So my theory is that there's a cache that on the "fast" machines
> aggressively caches the entire tree on a regular `git status` run. On
> such a machine, it's enough to run `git status` once, and after that
> initial cold run, the rest will be warm... until you reboot the
> machine, rinse, repeat.
>
> On a slow machine, however, cache isn't so aggressive. It might be
> write-oriented. So when you write out a whole new working tree, that
> tree gets cached as it is written. And for the remainder of the
> lifetime of that cache, you get the fully-cached performance you see
> on the "fast" machines. But then you reboot the machine, and lose the
> cache. And since the caching process isn't aggressive, any number of
> `git status` runs won't get you back to the fully cached state. You
> will only get that on a newly written working copy.

You can test this theory on a slow machine: You have cloned a repository, 
rebooted, and you are now at 14s per 'git status'. Now:

 $ git rm -r .
 $ git reset --hard

erases the worktree and writes it out again (do this only on a clean 
checkout!). Are you now at 5s per 'git status'?

-- Hannes

  parent reply	other threads:[~2010-11-24 22:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-23 19:08 Inexplicably deteriorating performance of Git repositories on Windows Dun Peal
2010-11-23 19:12 ` Wilbert van Dolleweerd
2010-11-23 19:59   ` Dun Peal
2010-11-23 20:10     ` Wilbert van Dolleweerd
2010-11-23 20:25     ` Stephen Bash
2010-11-23 21:07       ` Dun Peal
2010-11-24 14:16     ` Tay Ray Chuan
2010-11-24 17:16       ` Joshua Jensen
2010-11-24 21:00         ` Dun Peal
2010-11-24 21:18           ` A Large Angry SCM
2010-11-24 22:06           ` Johannes Sixt [this message]
2010-11-24 20:48       ` Dun Peal
2010-11-23 21:13 ` Martin Langhoff
2010-11-23 21:17   ` Dun Peal
2010-11-23 21:49 ` Ferry Huberts
2010-11-23 23:23   ` Dun Peal
2010-11-24 11:34 ` Andreas Ericsson
2010-11-24 20:10   ` Dun Peal
2010-11-24 13:32 ` Nguyen Thai Ngoc Duy
2010-11-24 20:22   ` Dun Peal
2010-11-28 22:18 ` Robin Rosenberg

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=201011242306.17834.j6t@kdbg.org \
    --to=j6t@kdbg.org \
    --cc=dunpealer@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jjensen@workspacewhiz.com \
    --cc=rctay89@gmail.com \
    --cc=wilbert@arentheym.com \
    /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).