From: "Sebastien Vauban" <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
To: help-gnu-emacs-mXXj517/zsQ@public.gmane.org
Subject: Re: Speeding up Emacs load time
Date: Wed, 24 Jul 2013 22:50:52 +0200 [thread overview]
Message-ID: <86hafjwukz.fsf@somewhere.org> (raw)
In-Reply-To: mailman.1066.1373869854.12400.help-gnu-emacs@gnu.org
Hi Glyn and all,
Glyn Millington wrote:
> One popular technique is not to load packages until you need 'em. That means
> fewer 'requires' in your .emacs/init.el file and more autoloads.
>
> See tips 3-5 here!
>
> http://a-nickels-worth.blogspot.co.uk/2007/11/effective-emacs.html
>
> The key function is eval-after-load
I'm using GNU Emacs on Windows, and using the above, I could reduce my load
time from 10+ seconds to 3 seconds. Still 3 x over many of you, which report
sub-seconds load time.
Though, I'm a bit blocked. I don't understand how to do better, or how to
completely avoid all the require commands.
Just take a few exemple:
- `(server-start)' takes more than 200 ms to run [1]; just that one command.
Though, I must have it in my .emacs file, right?
- diff-mode-.el must be loaded before diff-mode; hence, I must have it at
startup.
- Helm is my tool for opening files or switching between buffers. Just
requiring `helm-config' (almost only autoloads) -- hence, NOT `helm' (which
is more hungry in time) -- already takes 160 ms (as it still requires
`easy-menu' and `helm-aliases').
- `diary-lib' and co (needed for appointments notification) takes 233 ms.
Shouldn't I be notified at startup of events occurring in less than 15
minutes, without having to make a first call to calendar or so?
- `mic-paren' takes just 32 ms, but for just one small package, for which I
don't have a particular trigger. Is it `find-file-hook'? Then, I won't have
parenthesis highlighted when directly typing text in a newly created buffer
(or in the scratch). So, I need it in my .emacs. It's not eval'ed-after-load
of something else.
- The same for YASnippet (loaded in 130 ms): what would be the trigger?
Unless I have a clear one, I must require it in my .emacs file.
- Once again, the same with `recentf', which takes 92 ms. Don't I have to load
it right at startup?
These are a couple of examples which take a lot of the time, and for which I
don't see a specific trigger that would allow me to defer their load to later.
Any comments?
Best regards,
Seb
[1] The above are times on a very recent laptop i7, when on mains. Multiply
times by 3.5 when on battery.
--
Sebastien Vauban
next prev parent reply other threads:[~2013-07-24 20:50 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAHXt_SU8+n5JaupmrnDaSirc+yzBRGQAmOWgRpb=uEkaGAR9Sg@mail.gmail.com>
[not found] ` <CAHXt_SUL6a0q0q5nbJ3aw301C2--85e_Q3vVvPA7yxMvPbJ5mQ@mail.gmail.com>
2013-06-25 23:06 ` Speeding up Emacs load time Andrew Pennebaker
2013-06-26 2:02 ` Hongxu Chen
2013-06-26 7:30 ` Didier Verna
2013-06-26 17:04 ` J. David Boyd
2013-06-26 17:15 ` Mihamina Rakotomandimby
2013-07-15 1:02 ` Ken Goldman
2013-07-15 1:33 ` Andrew Pennebaker
2013-07-15 6:20 ` Glyn Millington
2013-07-15 8:15 ` Rasmus
2013-07-15 8:05 ` Peter Dyballa
[not found] ` <mailman.1066.1373869854.12400.help-gnu-emacs@gnu.org>
2013-07-24 20:50 ` Sebastien Vauban [this message]
2013-07-24 21:22 ` J. David Boyd
[not found] ` <mailman.1720.1374700982.12400.help-gnu-emacs@gnu.org>
2013-07-25 7:25 ` Sebastien Vauban
2013-07-25 14:20 ` J. David Boyd
[not found] ` <mailman.1762.1374762058.12400.help-gnu-emacs@gnu.org>
2013-07-25 19:24 ` Sebastien Vauban
[not found] ` <mailman.1061.1373851999.12400.help-gnu-emacs@gnu.org>
2013-07-15 14:06 ` Emanuel Berg
2013-07-15 14:45 ` Peter Dyballa
2013-07-15 15:46 ` Eli Zaretskii
2013-07-15 16:08 ` J. David Boyd
[not found] ` <mailman.1105.1373903184.12400.help-gnu-emacs@gnu.org>
2013-07-15 17:00 ` Emanuel Berg
2013-07-15 18:29 ` Eli Zaretskii
[not found] ` <mailman.1117.1373913021.12400.help-gnu-emacs@gnu.org>
2013-07-15 19:49 ` Emanuel Berg
2013-07-16 2:38 ` Eli Zaretskii
2013-07-20 22:08 ` Ken Goldman
[not found] ` <mailman.1142.1373942379.12400.help-gnu-emacs@gnu.org>
2013-07-16 4:13 ` Rustom Mody
2013-07-16 9:42 ` Emanuel Berg
2013-07-16 13:37 ` Rustom Mody
2013-07-16 13:39 ` Rustom Mody
2013-07-16 20:13 ` Emanuel Berg
2013-07-16 21:02 ` Emanuel Berg
2013-07-17 0:54 ` Juanma Barranquero
[not found] ` <mailman.1203.1374024479.12400.help-gnu-emacs@gnu.org>
2013-07-17 1:41 ` Emanuel Berg
2013-07-17 2:05 ` Juanma Barranquero
[not found] ` <mailman.1205.1374026774.12400.help-gnu-emacs@gnu.org>
2013-07-17 2:24 ` Emanuel Berg
2013-07-17 2:42 ` Juanma Barranquero
[not found] ` <mailman.1206.1374028983.12400.help-gnu-emacs@gnu.org>
2013-07-17 8:30 ` Emanuel Berg
2013-07-17 9:31 ` Juanma Barranquero
[not found] ` <mailman.1232.1374053532.12400.help-gnu-emacs@gnu.org>
2013-07-19 10:18 ` Emanuel Berg
2013-07-19 14:51 ` Juanma Barranquero
[not found] ` <mailman.1394.1374245509.12400.help-gnu-emacs@gnu.org>
2013-07-19 16:02 ` Emanuel Berg
2013-07-20 0:03 ` Juanma Barranquero
[not found] ` <mailman.1439.1374278629.12400.help-gnu-emacs@gnu.org>
2013-07-20 4:27 ` Emanuel Berg
2013-07-20 4:35 ` Jambunathan K
2013-08-28 23:08 ` Emanuel Berg
2013-07-16 17:54 ` Eli Zaretskii
2013-07-16 10:07 ` Emanuel Berg
2013-07-16 17:57 ` Eli Zaretskii
[not found] ` <mailman.1176.1373997462.12400.help-gnu-emacs@gnu.org>
2013-07-16 19:58 ` Emanuel Berg
2013-07-16 20:38 ` Peter Dyballa
[not found] ` <mailman.1187.1374007454.12400.help-gnu-emacs@gnu.org>
2013-07-16 21:11 ` Emanuel Berg
2013-07-17 8:36 ` Thien-Thi Nguyen
2013-07-16 21:25 ` Dmitry Gutov
2013-07-17 0:57 ` Juanma Barranquero
[not found] ` <mailman.1191.1374009934.12400.help-gnu-emacs@gnu.org>
2013-07-16 21:37 ` Dan Espen
2013-07-16 22:05 ` Dmitry Gutov
[not found] ` <mailman.1194.1374012333.12400.help-gnu-emacs@gnu.org>
2013-07-17 1:02 ` Dan Espen
2013-07-17 4:29 ` Dmitry Gutov
[not found] ` <mailman.1213.1374035360.12400.help-gnu-emacs@gnu.org>
2013-07-17 6:04 ` Emanuel Berg
2013-07-17 12:24 ` Eye strain and ergonomics Dmitry Gutov
2013-07-18 20:01 ` James Freer
[not found] ` <mailman.1251.1374063906.12400.help-gnu-emacs@gnu.org>
2013-07-19 10:30 ` Emanuel Berg
2013-07-17 12:36 ` Speeding up Emacs load time Dan Espen
2013-07-16 21:40 ` Emanuel Berg
2013-07-16 22:21 ` Dmitry Gutov
[not found] ` <mailman.1196.1374013270.12400.help-gnu-emacs@gnu.org>
2013-07-16 22:55 ` Emanuel Berg
2013-07-16 23:48 ` Highway Musophobia Revisited [was: Speeding up Emacs load time] Drew Adams
2013-07-17 2:54 ` Jambunathan K
2013-07-19 16:21 ` Óscar Fuentes
2013-07-19 17:24 ` Drew Adams
[not found] ` <mailman.1428.1374254670.12400.help-gnu-emacs@gnu.org>
2013-07-20 4:20 ` Emanuel Berg
[not found] ` <mailman.1420.1374250899.12400.help-gnu-emacs@gnu.org>
2013-07-20 4:23 ` Emanuel Berg
[not found] ` <mailman.1200.1374018533.12400.help-gnu-emacs@gnu.org>
2013-07-17 0:04 ` Highway Musophobia Revisited Emanuel Berg
2013-07-17 3:09 ` Drew Adams
[not found] ` <mailman.1210.1374030559.12400.help-gnu-emacs@gnu.org>
2013-07-17 6:14 ` Emanuel Berg
2013-07-17 10:42 ` Jambunathan K
2013-07-17 10:42 ` Jambunathan K
2013-07-17 16:20 ` Drew Adams
2013-07-17 12:27 ` Highway Musophobia Revisited [was: Speeding up Emacs load time] Rustom Mody
2013-07-19 10:35 ` Emanuel Berg
2013-07-16 5:12 ` Speeding up Emacs load time Jambunathan K
[not found] ` <mailman.1144.1373951470.12400.help-gnu-emacs@gnu.org>
2013-07-16 9:51 ` Emanuel Berg
2013-07-16 12:26 ` Jambunathan K
[not found] ` <mailman.1156.1373977528.12400.help-gnu-emacs@gnu.org>
2013-07-16 20:15 ` Emanuel Berg
2013-06-28 3:20 ` Bob Proulx
2013-06-28 5:27 ` Hongxu Chen
2013-06-28 19:53 ` Bob Proulx
2013-06-28 12:48 ` J. David Boyd
2013-06-28 14:00 ` J. David Boyd
[not found] ` <mailman.2694.1372428065.22516.help-gnu-emacs@gnu.org>
2013-06-28 14:16 ` Dan Espen
2013-06-28 19:06 ` Bob Proulx
[not found] ` <mailman.2650.1372389614.22516.help-gnu-emacs@gnu.org>
2013-06-28 20:27 ` Emanuel Berg
2013-06-29 5:04 ` Eric Abrahamsen
[not found] ` <mailman.2770.1372482246.22516.help-gnu-emacs@gnu.org>
2013-06-29 17:44 ` Rustom Mody
2013-06-30 0:45 ` Eric Abrahamsen
2013-06-30 12:46 ` Emanuel Berg
2013-06-30 14:04 ` Rustom Mody
2013-06-30 18:06 ` Emanuel Berg
2013-06-30 15:00 ` Eric Abrahamsen
[not found] ` <mailman.2850.1372604415.22516.help-gnu-emacs@gnu.org>
2013-06-30 16:07 ` Rustom Mody
2013-06-30 18:17 ` Emanuel Berg
2013-06-30 18:14 ` Emanuel Berg
2013-07-01 5:29 ` Eric Abrahamsen
2013-06-29 17:51 ` Bob Proulx
[not found] ` <mailman.2800.1372528321.22516.help-gnu-emacs@gnu.org>
2013-06-30 12:36 ` Emanuel Berg
[not found] ` <mailman.2429.1372201595.22516.help-gnu-emacs@gnu.org>
2013-06-26 1:16 ` Dan Espen
2013-06-27 16:14 ` Emanuel Berg
2013-06-27 17:50 ` J. David Boyd
2013-07-21 3:59 ` Rustom Mody
2013-07-21 14:18 ` Emanuel Berg
2013-07-21 14:41 ` Rustom Mody
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86hafjwukz.fsf@somewhere.org \
--to=sva-news-d0wtavr13harg/idocfnwg@public.gmane.org \
--cc=help-gnu-emacs-mXXj517/zsQ@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).