Lute Kamstra <[EMAIL PROTECTED]> writes: > [EMAIL PROTECTED] (Kim F. Storm) writes: > > [...] > >> Putting require into a function _does_ slow it down. > > I decided to test this. The speed effect is really minimal,
I guess it depends on how deep down in the require alist, the symbol is located. I.e. if the package was not loaded before you run your function, it will be first in the list, and so it doesn't have much impact. > (require 'ft) only loads a file if 'ft is not in features. However, > it unconditionally adds '(require . ft) to current-load-list. If you > call a function with require a million times, this eats up 16 MB of > memory. The problem seems to be that current-load-list is never truncated. But I don't quite understand what current-load-list is good for (outside the byte compiler). > > Should this be fixed somehow? I would think so... On my system, current-load-list contains the following after reading a few mails and doing M-x grep a few times. current-load-list ((require . parse-time) (require . compile) (require . compile) (require . parse-time) (require . parse-time) (require . parse-time) (require . parse-time) (require . compile) (require . parse-time) (require . compile) (require . parse-time) (require . parse-time) (require . compile) (require . parse-time) (require . compile) (require . parse-time) (require . parse-time) (require . parse-time) (require . parse-time) (require . gnus-sum) (require sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . sort) (require . nnml) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . mail-utils) (require . mail-utils) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . message) (require . parse-time) (require . parse-time) (require . mail-utils) (require . parse-time) (require . parse-time) (require . gnus-sum) (defun . message-make-address) (defun . message-make-sender) (require . parse-time) (require . parse-time) (require . tool-bar) (require . gnus-sum) (require . vc-cvs) (require . parse-time) (require . sort) (require . sort) (require . tool-bar) (require . nnmail) (require . nnmail) (require . nndoc) (require . nnmail) (require . nnmail) (require . parse-time) (require . nnmail) (require . nnfolder) (defun . gnus-byte-compile) (require . bytecomp) (require . byte-optimize) (require . nnml) (require . nnmail) (require . nnmail) (require . nndraft) (require . nntp) (provide . make-network-process)) -- Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel