emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: interactive feel of Emacs: the need for speed, and -Q [measure.el]


From: Basil L. Contovounesios
Subject: Re: interactive feel of Emacs: the need for speed, and -Q [measure.el]
Date: Wed, 15 Apr 2020 16:43:58 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Emanuel Berg via "Emacs development discussions." <address@hidden>
writes:

> Here are my requires:
>
> (require 'ada-mode)
> (require 'apropos)
> (require 'bibtex)
> (require 'cc-mode)
> (require 'checkdoc)
> (require 'cl-lib)
> (require 'comint)
> (require 'compile)
> (require 'css-mode)
> (require 'debug)
> (require 'dired)
> (require 'dired-x)
> (require 'erc)
> (require 'erc-button)
> (require 'erc-fill)
> (require 'erc-match)
> (require 'erc-ring)
> (require 'erc-stamp)
> (require 'gnus)
> (require 'gnus-art)
> (require 'gnus-cite)
> (require 'gnus-group)
> (require 'gnus-msg)
> (require 'gnus-score)
> (require 'gnus-srvr)
> (require 'gnus-start)
> (require 'gnus-sum)
> (require 'google-translate-core-ui)
> (require 'help-mode)
> (require 'ielm)
> (require 'info)
> (require 'ispell)
> (require 'lpr)
> (require 'man)
> (require 'map)
> (require 'message)
> (require 'netrc)
> (require 'nnmail)
> (require 'nroff-mode)
> (require 'package)
> (require 'parse-time)
> (require 'search-regexp-in-files)
> (require 'seq)
> (require 'sgml-mode)
> (require 'shell)
> (require 'slime)
> (require 'slime-autoloads)
> (require 'slime-presentations)
> (require 'slime-repl)
> (require 'smtpmail)
> (require 'sort)
> (require 'subr-x)
> (require 'tex-mode)
> (require 'thingatpt)
> (require 'tls)
> (require 'tramp)
> (require 'w3m)
> (require 'w3m-bookmark)
> (require 'w3m-form)
> (require 'w3m-search)
> (require 'w3m-session)

FWIW eagerly loading such a non-trivial amount of large packages is very
likely to be slow, even if each one comprises only top-level
definitions.  Simply loading Gnus alone can take upwards of 500ms on my
machine.  Occasionally less well-behaved packages execute non-trivial
code at top-level, thus incurring a further cost when loading them.

For faster initialisation, try to avoid loading packages until they are
needed.  A couple of features that can help with this are autoloading[1]
and with-eval-after-load[2].

[1]: (info "(elisp) Autoload")
[2]: (info "(elisp) Hooks for Loading")

-- 
Basil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]