Может кто-нибудь сказать мне, как Emacs управляет этим, даже с тысячами .el-файлов?
Emacs "управляет" этим, не загружая при запуске, тем самым не задерживая загрузку основного приложения. Это, в свою очередь, как результат более быстрого возврата управления с клавиатуры на пользователя.
Но когда он загружен? При первом использовании этой функции, режима или функции.
Разве это не замедляется? Да, при первом использовании. Это компромисс. Вы хотите замедлить работу во время запуска emacs или при первом использовании.
Это заметно? Загрузка во время запуска, кажется, занимает больше времени, так как загружаются и другие основные библиотеки. Но при первом использовании он чувствует себя быстрее, так как загружается только функция подмножества.
Тогда зачем кому-то выбирать нагрузку при запуске? Потому что некоторые не против дождаться загрузки всех часто используемых библиотек при запуске, поэтому после загрузки все операции выполняются быстро после этого.
Как я могу выбрать? Как указывали Дрю и другие в своих ответах на этот вопрос, вы можете использовать автозагрузку и аналогичные приемы для контроля. Но самым важным фактором должен быть ваш шаблон использования. Если вам случится использовать emacs, такой как vi, постоянно открывающийся и закрывающийся, да, время запуска становится болезненно очевидным. Но с другой стороны, если вы используете emacs, работающий все время, время запуска в 1 секунду или 1 минуту не будет настолько заметным или достаточно важным, чтобы об этом беспокоиться.
Обратите внимание, что вы можете использовать пакетный режим или Zile для мгновенного запуска во время тестирования, запуска или иного использования emacs, например, vi.
Я предпочитаю загружаться при запуске, чтобы любые ошибки были обнаружены заранее. Я предпочитаю не сталкиваться с ошибками загрузки в самый разгар рабочего дня, когда у меня активны бесчисленные буферы, режимы и состояния компиляции, а также несколько удаленных мест, управляемых TRAMP. Отладка ошибок автозагрузки в таких условиях не очень приятна.
:defer t
в своихuse-package
декларациях, где это возможно?