Previous: , Up: Performance   [Contents][Index]


MacOS Performance

Before Emacs 26.1 child processes were created using fork on macOS. That needlessly copied GUI resources, which is expensive. The result was that forking took about 30 times as long on Darwin than on Linux, and because Magit starts many git processes that made quite a difference.

So make sure that you are using at least Emacs 26.1, in which case the faster vfork will be used. (The creation of child processes still takes about twice as long on Darwin compared to Linux.) See 2 for more information.

On Catalina, and potentially other macOS releases, there may be a performance problem where any action takes 20 times longer on Darwin than on Linux. This can be worked around by setting magit-git-executable to the absolute path of the git executable, instead of relying on resolving the $PATH. You should not do that if you want to use Magit on remote machines using Tramp and if git is not installed in the same location on those machines.


Footnotes

(2)

https://lists.gnu.org/archive/html/bug-gnu-emacs/2017-04/msg00201.html