[Top][All Lists]

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

Re: Speeding up Emacs load time

From: Sebastien Vauban
Subject: Re: Speeding up Emacs load time
Date: Thu, 25 Jul 2013 09:25:00 +0200
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (windows-nt)

Hi J. David,

J. David Boyd wrote:
> "Sebastien Vauban" <> writes:
>> 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!
>>> 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.
> Are you using Cygwin?  And the X11 binary, or the Ming-W binary?

I'm using

    GNU Emacs (i686-pc-mingw32) of 2013-07-07 on LEG570

(compiled W32 binary from DropBox in this case, by Dani Moncayo) -- but I
indifferently use the (older, I mean for Emacs 24.3) binaries as well from the
FSF Web site. So, I never (try to) compile Emacs by myself.

I do have Cygwin installed on my machine.

I don't use Ming-W nor X11.

Best regards,

Sebastien Vauban

reply via email to

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