Kann mir jemand sagen, wie Emacs das schafft, selbst mit Tausenden von .el-Dateien?
Emacs "verwaltet" dies, indem es beim Start nicht geladen wird, wodurch das Laden der Kernanwendung nicht aufgehalten wird. Dies wiederum als Folge einer schnelleren Rückgabe der Tastatursteuerung an den Benutzer.
Aber wann wird es geladen? Bei der ersten Verwendung dieser Funktion, dieses Modus oder dieser Funktion.
Verlangsamt es nicht? Ja, beim ersten Gebrauch. Das ist der Kompromiss. Möchten Sie beim Start von emacs oder beim ersten Gebrauch langsamer fahren?
Ist es auffällig? Das Laden zum Startzeitpunkt scheint länger zu dauern, da auch andere Kernbibliotheken geladen werden. Beim ersten Gebrauch fühlt es sich jedoch schneller an, da nur diese Teilmengenfunktion geladen wird.
Warum sollte dann jemand beim Start die Last auswählen? Da es einigen nichts ausmacht, beim Start darauf zu warten, alle häufig verwendeten Bibliotheken zu laden, werden alle Vorgänge nach dem Laden schnell ausgeführt.
Wie kann ich wählen? Wie Drew und andere in ihren Antworten auf genau diese Frage hervorgehoben haben, können Sie Autoload und ähnliche Tricks zur Steuerung verwenden. Die wichtigste Überlegung sollte jedoch Ihr Nutzungsmuster sein. Wenn Sie Emacs wie vi verwenden, die sich ständig öffnen und schließen, wird die Startzeit schmerzhaft offensichtlich. Wenn Sie jedoch Emacs verwenden, die ständig ausgeführt werden, ist eine Startzeit von 1 Sekunde oder 1 Minute nicht so auffällig oder wichtig genug, um sich darum zu kümmern.
Beachten Sie, dass Sie den Batch-Modus oder Zile für den sofortigen Start verwenden können, während Sie Emacs wie vi testen, ausführen oder auf andere Weise verwenden.
Ich bevorzuge es, beim Start zu laden, damit Fehler im Voraus erkannt werden. Ich bevorzuge es, mich während eines Arbeitstages nicht mit Ladefehlern befassen zu müssen, wenn unzählige Puffer, Modi und Kompilierungszustände zusammen mit mehreren von TRAMP verwalteten Remote-Standorten aktiv sind. Das Debuggen von Autoload-Fehlern unter solchen Bedingungen ist nicht sehr angenehm.
:defer t
in Ihrenuse-package
Erklärungen, wo immer dies möglich ist?