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.
Additionally, git
installed from a package manager like brew
or nix
seems to be slower than the native executable. Profile the git
executable you’re running against the one at /usr/bin/git
, and if
you notice a notable difference try using the latter as
magit-git-executable
.