Gergely Risko has an interesting GitHub repository that explores ways of making your Emacs load time as small as possible. Unless I’m hacking on my configuration, I rarely start Emacs except at boot time so the two or three seconds of startup time doesn’t bother me much. But if you simply must get your startup time to an absolute minimum, take a look at Risko’s strategy.
The TL;DR is that he avoids
package-initialize and uses
use-package in its place. The real problem with that solution is getting the load paths for the packages. In the video on use-package, John Wiegley and Sacha Chua discuss that problem. Wiegley avoids it by not using the package system. Most of use would rather not take that option and Risko has a method of loading the paths that runs when
init.el isn’t compiled and adds them to the
init.elc image so that the overhead is mostly avoided.
Most of us, I’m sure, don’t load Emacs very much. We either have a long running instance or start the server and use
emacsclient so unless you have a use case like Wiegley’s that requires frequent restarts of Emacs, you may not want to bother with Risko’s solution. If minimizing your Emacs load time is another video game for you, take a look at the repository to see if his ideas might help.