Andrzej Skiba <[email protected]> writes:

> I experience a 3-5sec. lag when doing anything with magit on Windows
> (status, diff, stage etc.).
>
> I tried to look around if anyone else has had that problem but it all
> seems to relate to git not being called directly but through PATH. Not
> the case for me. (Mostly older posts anyways)
>
> Has anyone else seen this on their machine? 

Yes.

On a VMWare virtual machine with Win XP 32 bits pressing `g' on a Magit
status buffer takes ~3 seconds. On a virtual machine with Windows 8.1 64
bits it takes 6 seconds. Same for staging, showing the changes on an
edited file and many other operations. It's really annoying.

On a real Windows machine it takes less time. For instance, on a old Win
XP netbook Magit works faster than on the Win XP virtual machine running
on a 2.4 GHz quadcore workstation.

I investigated this and the problem consists on Magit executing multiple
`git' invocations for a given command. `magit-refresh' (`g' on the
status buffer) invokes git approx. 36 times. Windows is not so fast as
Linux at creating processes. And on a VM, process creation is
significantly slower. Finally, git is super-optimized for Linux and the
Windows port is happy with making things work without extensive
platform-specific changes.

The net result is that Magit on Windows is slow because it executes git
lots of times for an operation and each git invocation is much slower
than on Linux.

Magit could reduce the number of git invocations (`magit-refresh'
executes the exact same git commands multiple times; the result of such
commands could be cached) but a real perfomance breakthrough would
require re-engineering Magit and/or extensive adaptations of git to
Windows.

-- 
You received this message because you are subscribed to the Google Groups 
"magit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to