Czy ktoś mógłby mi powiedzieć, jak Emacs sobie z tym radzi, nawet z tysiącami plików .el?
Emacs „zarządza” tym, że nie ładuje się przy starcie, a tym samym nie wstrzymuje ładowania podstawowej aplikacji. To z kolei jest efektem szybszego zwracania użytkownikowi kontroli nad klawiaturą.
Ale kiedy jest załadowany? Przy pierwszym użyciu tej funkcji, trybu lub funkcji.
Czy to nie zwalnia? Tak, przy pierwszym użyciu. To jest kompromis. Czy chcesz zwolnić podczas uruchamiania emacsa czy przy pierwszym użyciu?
Czy to zauważalne? Ładowanie podczas uruchamiania wydaje się trwać dłużej, ponieważ ładowane są również inne biblioteki podstawowe. Ale przy pierwszym użyciu wydaje się szybszy, ponieważ ładowana jest tylko ta funkcja podzestawu.
Dlaczego więc ktoś miałby ładować przy starcie? Ponieważ niektórym nie przeszkadza czekanie na załadowanie wszystkich często używanych bibliotek podczas uruchamiania, więc po załadowaniu wszystkie operacje są wykonywane szybko.
Jak mogę wybrać? Jak Drew i inni wskazali w swoich odpowiedziach na to pytanie, możesz użyć automatycznego ładowania i podobnych sztuczek, aby kontrolować. Ale najważniejszym czynnikiem powinien być wzorzec użytkowania. Jeśli zdarzy ci się używać emacsa, takiego jak vi, ciągłe otwieranie i zamykanie, tak, czas uruchamiania staje się boleśnie oczywisty. Ale z drugiej strony, jeśli używasz emacsa działającego cały czas, czas uruchamiania 1 sekundy lub 1 minuty nie będzie tak zauważalny ani wystarczająco ważny, aby się tym przejmować.
Uwaga: możesz użyć trybu wsadowego lub Zile do natychmiastowego uruchomienia podczas testowania, uruchamiania lub w inny sposób za pomocą emacsa, takiego jak vi.
Preferuję ładowanie przy starcie, aby wszelkie błędy były wychwytywane z góry. Wolę nie mieć do czynienia z błędami ładowania w środku dnia roboczego, gdy mam niezliczoną liczbę buforów, trybów i stanów kompilacji oraz kilka zdalnych lokalizacji zarządzanych przez TRAMP. Debugowanie błędów autoloadowania w takich warunkach nie jest zbyt przyjemne.
:defer t
w swoichuse-package
deklaracjach gdziekolwiek to możliwe?