TLDR: here are the settings that made the biggest difference for me. YMMV.
(setq magit-commit-show-diff nil
Magit is awesome. And it's getting better with regular releases, a more consistent interface, and much more. But since the release of 2.1, it's generally been slower for me. I'm not the only one. In particular, the status buffer would take multiple seconds to refresh after almost any action such as committing, checking out a branch, stashing/popping, deleting a file, etc.
Tarsius, Magit's maintainer, is clearly aware of the performance issues and working to fix them. It can't be easy to diagnose performance problems given the multitude of ways Magit can be configured, plus the huge variety of characteristics among all the git repos out there. Nonetheless, I'm sure performance will improve in future versions.
But I needed to do something about it in the near term. I searched online and
while Magit has a
page dedicated to perf settings,
none of them helped me much. So I grepped the Magit source for
read all the docstrings in search of things to try. Here's what I found.