Preload isn't pre-execute. Conceptually, it's only doing roughly the work done with perl -cw. How many megabytes of pages are you actually loading that you think it would take a noticeable amount of time doing this?
The savings from preloading is a combination of being able to use more shared memory and not having to load things while the system is distracted with all the other things that need doing on starting up a new thread. And, even so, the performance gain for a single thread would be minimal, it's just notable over thousands of new thread creations. (That said, would be more noticeable for a new thread creation than a new fork creation, since forking is a more significant task.) -- Ed Grimm Identity Services -----Original Message----- From: Neil Gunton [mailto:n...@nilspace.com] Sent: Tuesday, June 27, 2017 02:21 To: embperl@perl.apache.org Subject: Re: AW: Embperl and threaded mpm? Ruben Safir wrote: > On 06/26/2017 07:51 PM, Neil Gunton wrote: >> rich...@ecos.de wrote: >>> Hi Neil, >>> >>> Embperl is not working with threaded mpm. >>> >>> Preloading all your perl code saves a lot of memory due to code sharing. >>> >>> The main issue is, that you have to make sure, not to open any file or >>> database connection or similar in the preload code, because that will >>> be shared too, which does not work >> >> Thanks, Gerald. So, just to be clear, what my preload routine in >> startup.pl does is the following. Maybe you can confirm that I'm doing >> it right. >> >> if (Apache2::ServerUtil::restart_count() == 1) >> { >> preload_dirs(); >> $Embperl::initparam{preloadfiles} = \@preload_files; >> } >> >> The preload_dirs() simply traverses my code tree and calls this for each >> file: >> >> push (@preload_files, {inputfile => $filename, path => $path, import => >> 0, input_escmode => 0, options => 16, debug => 0x7fffffff}); >> >> Does that look about right? If as you say it's worthwhile in terms of >> memory then I might look at re-enabling it again. I think I disabled it >> originally because it made restarting the server quite slow, but it >> would be useful to have it as an option should I need it. >> > > looks right to me although I never did this. You are just setting up > the global parameters Ok, but I'm wondering if there is something else I should be doing to execute the actual preload. It seems that all I do here is give Embperl an array, but when I enable the preload, it just goes through everything suspiciously quickly. I don't think it's actually executing anything at preload time, though I could be wrong. I'm thinking there's something else I need to do to tell Embperl "ok, now actually load all those files"... Neil --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-h...@perl.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: embperl-unsubscr...@perl.apache.org For additional commands, e-mail: embperl-h...@perl.apache.org