Re: Why is git submodule slow under windows
- From
Fredrik Gustafsson <iveqy@iveqy.com>
- Date
- Jul 18, 2014, 13:02 UTC
- Message-ID
- <20140718130241.GD14720@paksenarrion.iveqy.com>
- In-Reply-To
- <53C90E44.6030702@virtuell-zuhause.de>
On Fri, Jul 18, 2014 at 02:08:36PM +0200, Thomas Braun wrote:
Show 22 quoted lines
> Am 18.07.2014 12:14, schrieb Armbruster Joachim (BEG/EMS1): > > Hello, > > > > We split a monolithic repository into ~50 submodules. The stored data > > has the same size. In the 1:1 comparison to the monolithic > > repository, the submodule handling is very slow. Under Linux > > everything remains fast, but windows is slow. > > > > So, why is git getting slow when it has to deal with a lot of > > submodules? I read something about the lack of the underlying cygwin > > to handle NTFS in a efficient way. Is this the root cause, or are > > there other causes also? > > > > Hi, > > I assume you are using the latetst git from https://msysgit.github.io on > windows. > > I would guess that submodules on windows are slow because > git-submodules.sh is a shell script, and bash on windows is not really > that fast.
My guess is that because the shell script uses fork() heavily and fork() is an expensive operation on Windows, that alone causes the slowddown.
I did a quick test a while back when I rewrote part of git-submodule.sh in lua and runned it on my repo with ~45 submodules. The speedup was significant and should be even bigger on windows.
-- Med vänlig hälsning Fredrik Gustafsson tel: 0733-608274 e-post: iveqy@iveqy.com