On Wednesday, November 12, 2014 4:24:26 PM UTC+1, Óscar Fuentes wrote: > Andrzej Skiba 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.
Thanks, for the thorough explanation. At least now I know why it works the way it does and that, sadly, I have to live with it. A. -- 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.
