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

Reply via email to