Я вынужден использовать Windows 10 для проекта. Да, я бы предпочел использовать GNU / Linux. Чтобы сохранить здравомыслие, я пытался рассматривать Windows как загрузчик для Emacs :)
К сожалению, Magit (одна из моих любимых частей Emacs, которая также компенсирует отсутствие хорошей командной строки в Windows) невыносимо медленна. У меня есть SSD, 16 ГБ оперативной памяти и четырехъядерный процессор i7 , но это занимает восемь секунд , чтобы выполнить magit-status
на небольшое хранилище. Затем, когда я хочу внести другое изменение, это занимает около 5 секунд на файл .
Вот что я попробовал:
$ git config --global core.preloadindex true
$ git config --global core.fscache true
$ git config --global gc.auto 256
- Добавление всего проекта в список исключений Защитника Windows (мой единственный AV)
- Установка
magit-git-executable
обычного msysgit, который я скачал ( https://git-for-windows.github.io/ ). Я проверил иgit status
здесь занимает <1 секунды. Я знаю, чтоmagit-status
это намного больше, но это слишком много.
Кто-нибудь может предложить способы сделать это быстрее? Я не могу представить, чтобы кто-нибудь использовал Magit на Windows, как это.
Было высказано предположение, что этот вопрос является дубликатом, но они спросили:
Я изо всех сил пытаюсь понять, почему Emacs заметно короче время запуска в Ubuntu, чем Windows. Кто-нибудь знает ответ?
Я знаю по крайней мере несколько причин, почему Emacs, Git и Magit работают медленнее в Windows. Я спрашиваю, как я могу оптимизировать Magit, чтобы делать меньше вещей, или кэшировать результаты, или что-то еще, даже если это в ущерб функциональности.
git
команд из командной строки?
magit-git-executable
, вероятно, будет немного быстрее (те, которые находятся cmd
и bin
являются фактически обертками, если executable-find
возвращает один из них, magit попытается установить magit-git-executable
«реальный» git). 8 секунд для небольшого репозитория звучат, как будто что-то еще не так, однако, для репозитория magit здесь требуется ~ 0.8с (Windows 8).
magit-refresh-verbose
в t
.
git-status
занимает <1 секунду? Это должно быть по существу мгновенно. Есть ли ощутимая задержка вообще?