It wasn't until recently that I realized that the functionality of AutoLoader might 
actually be counter-productive for mod_perl, at least in a prefork MPM.

Because routines are loaded when they are requested, they may be loaded in child 
processes, causing duplication in memory because they are not shared.  They would be 
shared if they would be loaded in the initialization phase before the child processes 
are forked.  But in that phase you wouldn't call all of those routines that you might 
need in the child processes.

I was therefore thinking about the development of a module that would just go through 
%INC and check each of the modules for auto/*.al files and do() all of them (possibly 
limited by a hash keyed to module names with subroutine lists).  And then possibly 
disable AutoLoader altogether, so no memory would inadvertently be lost by routines 
being loaded by child processes.


Does such a beast exist already? If not, would such a module make sense?  What would 
be a good name for it?


Liz

Reply via email to