The time you spend optimizing your startup time will likely be greater than all the extra time you would have otherwise waited for Emacs to start up.
At the moment I make 25 require
calls in my init file so that Flycheck can find spelling errors in my code. My startup time is...
$ time emacs --eval '(save-buffers-kill-terminal)'
real 0m2.776s
user 0m2.305s
sys 0m0.148s
Also, on my system, time emacs -Q --eval '(save-buffers-kill-terminal)'
has a real
of 0m0.404s
. The theoretical maximum amount of time I can save is 2.3 seconds.
Say that I spend an hour making all matter of optimizations to my init file. (I won't count the additional 15-30 minutes spent on a later date trying to figure out why my changes weren't taking effect due to my init file being byte-compiled.) (I also won't count the time that Flycheck would have saved me in the debugger if I hadn't removed the require
calls.) There are 3600 seconds in an hour, so if I managed to save the whole 2.3 seconds, my investment in time would only pay off after 1565 startups.
Assuming I restarted Emacs 3 times a day, every day, it would take a year and half for that investment to pay off. If I left the same Emacs instance running for days at a time (as I often do), I'd probably only restart 2-5 times a week, in which case it would take 6 to 15 years for that investment to pay off.
I'm being generous, because you are likely to spend more than an hour optimizing your startup, and you probably won't save the maximum theoretical number of seconds.