Gnus development mailing list
 help / color / mirror / Atom feed
From: storm@cua.dk (Kim F. Storm)
Cc: emacs-devel@gnu.org,  ding@gnus.org,
	Reiner Steib <reiner.steib@gmx.de>,
	 miles@gnu.org
Subject: Re: require inside functions. (was: Changes in calendar/time-date.el)
Date: Thu, 07 Apr 2005 23:45:31 +0200	[thread overview]
Message-ID: <m3d5t65khw.fsf@kfs-l.imdomain.dk> (raw)
In-Reply-To: <87ll7uwy6m.fsf_-_@xs4all.nl> (Lute Kamstra's message of "Thu, 07 Apr 2005 14:47:45 +0200")

Lute Kamstra <Lute.Kamstra.lists@xs4all.nl> writes:

> storm@cua.dk (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 <storm@cua.dk> http://www.cua.dk




  reply	other threads:[~2005-04-07 21:45 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E1DGYNu-00038g-00@quimby.gnus.org>
2005-03-30 12:18 ` CVS update of gnus/lisp (4 files) Katsumi Yamaoka
2005-03-31 11:27   ` Changes in calendar/time-date.el (was: CVS update of gnus/lisp (4 files)) Reiner Steib
2005-03-31 12:20     ` Miles Bader
2005-03-31 12:58     ` Changes in calendar/time-date.el Lute Kamstra
2005-03-31 22:52       ` Miles Bader
2005-04-01  4:10       ` Richard Stallman
2005-04-04 10:25       ` Reiner Steib
2005-04-04 10:57         ` Lute Kamstra
2005-04-04 12:09           ` Reiner Steib
2005-04-04 12:52             ` Lute Kamstra
2005-04-04 17:20               ` Reiner Steib
2005-04-04 19:50                 ` Stefan Monnier
2005-04-05  7:14                 ` Kim F. Storm
2005-04-05  9:33                   ` Miles Bader
2005-04-05 10:06                     ` Kim F. Storm
2005-04-07 12:47                       ` require inside functions. (was: Changes in calendar/time-date.el) Lute Kamstra
2005-04-07 21:45                         ` Kim F. Storm [this message]
2005-04-08  0:12                           ` require inside functions Miles Bader
2005-04-08  0:45                             ` Stefan Monnier
2005-04-08  2:09                               ` Miles Bader
2005-04-08  0:21                           ` Stefan Monnier
2005-04-08  3:22                         ` require inside functions. (was: Changes in calendar/time-date.el) Richard Stallman
2005-04-08  8:12                           ` Kim F. Storm
2005-04-09  3:38                             ` require inside functions. (was: Changes in Richard Stallman
2005-04-09  9:30                               ` require inside functions Lute Kamstra
2005-04-10  1:55                                 ` Richard Stallman
2005-04-13  9:11                               ` Lute Kamstra
2005-04-15  2:44                                 ` Richard Stallman
2005-04-15  9:23                                   ` Lute Kamstra
2005-04-08  8:16                           ` David Kastrup
2005-04-05 13:54                 ` Changes in calendar/time-date.el Lute Kamstra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3d5t65khw.fsf@kfs-l.imdomain.dk \
    --to=storm@cua.dk \
    --cc=ding@gnus.org \
    --cc=emacs-devel@gnu.org \
    --cc=miles@gnu.org \
    --cc=reiner.steib@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).