¿Alguien podría decirme cómo Emacs maneja eso, incluso con miles de archivos .el?
Emacs "gestiona" eso al no cargar al inicio, por lo que no detiene la carga de la aplicación principal. Esto a su vez como el efecto de devolver el control del teclado al usuario más rápido.
Pero cuando se carga? En el primer uso de esa función, modo o característica.
¿No se ralentiza? Sí, en el primer uso. Esa es la compensación. ¿Desea reducir la velocidad en el momento del inicio de emacs o en el primer uso?
¿Se nota? La carga en el momento del inicio parece tomar más tiempo ya que otras bibliotecas principales también se cargan. Pero en el primer uso, se siente más rápido ya que solo se carga esa característica de subconjunto.
Entonces, ¿por qué alguien elegiría cargar al inicio? Debido a que a algunos no les importa esperar para cargar todas las bibliotecas de uso frecuente en el inicio, una vez cargadas, todas las operaciones se realizan de manera rápida a partir de entonces.
¿Cómo puedo elegir? Como Drew y otros han señalado en sus respuestas a esta misma pregunta, puede usar la carga automática y trucos similares para controlar. Pero la consideración más importante debe ser su patrón de uso. Si usa emacs como vi, que se abre y cierra constantemente, sí, el tiempo de inicio se vuelve dolorosamente obvio. Pero, por otro lado, si usa emacs ejecutándose todo el tiempo, el tiempo de inicio de 1 segundo o 1 minuto no será tan notable o lo suficientemente importante como para preocuparse.
Tenga en cuenta que puede usar el modo por lotes o Zile para el inicio instantáneo mientras prueba, ejecuta o usa emacs como vi.
Mi preferencia es cargar al inicio para que cualquier error se detecte por adelantado. Prefiero no tener que lidiar con ningún error de carga mientras estoy en medio de un día de trabajo cuando tengo innumerables buffers, modos y estados de compilación activos junto con varias ubicaciones remotas administradas por TRAMP. La depuración de errores de carga automática en tales condiciones no es muy agradable.
:defer t
en tususe-package
declaraciones siempre que sea posible?C-h i g (elisp) Building Emacs
si está interesado en aprender sobre eso.