Hi Eli, I wrote the code and tested it, the patch file attached. In the patch, a new "load-hints" is introduced with a default value nil. When its value is nil, everything works as before. When its value is set as a list of hints, the openp function calling count is reduced a lot. I had an example for require "org", the "load-hints" can reduce the access attempts from 123 to 6, here is the test command lines, strace the emacs in batch mode, a single (require 'org) trigger more than 100+ open attempts; with correct load-hints, the count reduce to 6. > strace src/emacs -batch -eval "(require 'org)" 2>&1| grep 'open.*/org\.' | wc -l > 123 > strace src/emacs -batch -eval "(let ((load-hints '((\"org*\" \"~/tmp/emacs.debug/lisp/org/\"))))(require 'org))" 2>&1| grep 'open.*/org\.' | wc -l > 6 And you had mentioned scan the load-path to build a full hints list, it absolutely should work; I'm looking to change package.el to generate the "-autoloads.el" work with "load-hints", currently the autoloads.el will add its folder into "load-path", just change it to add its path into "load-hints" should work, then we do NOT need to provide a function to build the "load-hints" for the packages installed by package.el won't bother the "load-path".