Вы можете использовать benchmark-init для профилирования вашего запуска Emacs. Он будет отслеживать, какие модули загружаются и сколько времени уходит на каждый из них. Результаты могут быть представлены в виде таблицы или в виде дерева. Дерево упрощает отслеживание того, кто что загружает, что может быть полезно, когда вы загружаете пакет с большим количеством зависимостей, а табулированная форма помогает вам быстро найти, где тратится большая часть времени.
Получив эти результаты, постарайтесь выяснить, нужно ли загружать все модули постоянно или, возможно, вы можете загрузить некоторые из них по требованию. Например, в моей конфигурации я загружаю только расширения Emacs, которые характерны для определенных режимов, когда этот режим фактически активирован, так как большую часть времени я использую только небольшое их подмножество в сеансе. eval-after-load и ловушки режима будут вашими друзьями здесь.
Применяя этот метод , мой Emacs запускается через 3-4 секунды , и у меня близко к 200 расширениям . Большую часть времени тратится на загрузку Helm, который я всегда загружаю, поскольку он заменяет find-file и другие функции ядра, которые всегда нужны, и CEDET, поскольку я использую последнюю версию, и ее необходимо загрузить, прежде чем Emacs попытается загрузить более старую встроенная версия.