Re: How php works?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Jochem, Roman :)


On 12/13/06, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:

Kai Xiang wrote:
> On 12/13/06, Roman Neuhauser <neuhauser@xxxxxxxxxx> wrote:
>
>> # maillist.kai@xxxxxxxxx / 2006-12-13 14:15:26 +0800:
>> > I'm new here and looking PHP these days, howerver , I'm confused by
how
>> it
>> > works, and here is some questions I have.
>> > Is there any old bird wanna help me out?
>> >
>> > 1. I heard there is a zend engine inside PHP playing the role as a
>> virtual
>> > machine, and PHP excution have 2 step, first compile to opcode and
then
>> > excute the opcode,
>> > so is that means the php are compiled only once per file? or still
need
>> to
>> > recompile when another request issued to the server? also I heard
about
>> the
>> > caching extention about php, is it talking about caching the opcode?
>> is't
>> > caching the opcode or excute results? how it shares between the
>> requests?
>>
>> Both kinds of things exist, with different sharing strategies.
>
>
> Can you tell it more detail, opcode caching cache the compiled opcode,
so
> not any compile needed anymore if no source changed? what about results,
> what kind of methdology it's taking?

you can get a good idea of APC from the changelog:

       http://pecl.php.net/package-changelog.php?package=APC

Zend als offers opcode caching as part of their suite of products ... Im
not all to familiar with Zend's stuff but no doubt their website has
plenty
of info.

>
>
>
>> > 3. Take linux apache for example, if compiled as a apache module, and
>> using
>> > prefork threading model, for example, if I have 100 process, is that
>> means I
>> > have 100 copy of PHP library local data(I assume only one reentrant
>> > excutable image) in each process? compare to a worker model, like 10
>> process
>> > and 10 threads in each one process, should it make a difference that
we
>> only
>> > have 10 copy of PHP library local data ?
>>
>> Practical concerns make your question moot: even if the basic
>> distribution was all threadsafe, you're bound to hit a library that
uses
>> strtok(3) or strerror(3), or static variables. How much of the code you
>> rely on is labelled by its authors as threadsafe?
>
>
> So it is not a good idea to use worker and php module at the same time,
but

correct - stick with the prefork module with apache, I believe *think* it
is possible
to safely use a threaded module if you decide to go the FastCGI route but
I maybe
thinking this because I completely misunderstood what someone was saying
about FastCGI
(I remember reading quite abit about FastCGI in posts made to
internals@xxxxxxxxxxxxx
by core-dev/Zend-Founder Andi Gutmans - although I can't say I understood
everything I read!)

> if no threadsafe problem , maybe my thinking is right?
> Btw, I thought strerror in libc were thread-safe.
>
>



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux