> -----Original Message-----
> From: Pierre Joye [mailto:pierre....@gmail.com]
> Sent: Tuesday, January 29, 2013 2:19 PM
> To: Zeev Suraski
> Cc: Johannes Schlüter; PHP internals
> Subject: Re: [PHP-DEV] ZTS - why are you using it?
>
> On Tue, Jan 29, 2013 at 1:06 PM, Zeev Suraski <z...@zend.com> wrote:
>
> >> It is inter process sharing and is very expensive, nothing to compare
> > with shared
> >> memory within a single process, accross many threads.
> >
> > What are you basing that assertion on?  Shared memory should have
> > identical performance to regular process memory.  It's mapped in very
> > similar way.
>
> Testing maybe?

Retest then, you've got it wrong.  Shared memory (or memory mapped files
as they'd be on Windows) are simply memory, it's available to the process
in exactly the same way and while the OS does slightly different
book-keeping for it in how it populates the pages - it's negligible.

> >> >> Miss the rest of my mail or? Current implementation is outdated
> >> >> and slow.
> >> >
> >> > That is true. Many modern compilers and environments provide
> >> > better support for thread local storages ....
> >>
> >> Exactly, or more exactly CRTs (libc, crt and the likes)>
> >
> > Can we stop arguing about the implementation
>
> No, we can't. The main reason of the bugs and performance issue is due
to the
> current implementation and how extensions developers have to deal with
it. It is
> not separable from discussing what could be the worst decision we ever
made,
> droping thread safety.

Well, I'm not interested in discussing the implementation when the need
isn't clear to me.
For example, you could say that thread-safe PHP would be 2x faster.  Or 2x
more memory efficient.  Or will enable us to do XYZ which we otherwise
can't.
For now, an *utopian* ZTS mode would, at best, not give us anything.
Even if we put aside the performance/reliability issues - why would
someone want that mode over other modes?

> > So far the only real use case that was brought up was for using
> > pthreads in a long-running app.  I've yet to hear about a single real
> > reason of why someone would want to use it in web server context that
> > is not based on misconceptions or myths.
>
> Thanks, it is really nice to say something and being told that what has
been done
> is misconceptions or myths, especially if you gave up on thread safety
years ago
> within your company. That's all good, as long as it only affects your
company
> products and not PHP as a whole.

Pierre, I'm sorry, but when you state something like '[shared memory] is
inter process sharing and is very expensive', there's no other way to
describe it other than a myth.  Better theoretical performance is a
misconception.  The best PHP performance/density available today is on
nginx, which couldn't be farther away from
multithreaded-PHP-in-process-arch.

Even after what you just said, you've yet to bring up a single reason for
why one would want to use ZTS inside a web server context.  You seem to
love ZTS with a vengeance but you can't quite explain why.  My 'company'
didn't decide anything regarding ZTS.  It was me, probably the person with
the most experience with ZTS back in the day, and it was probably much
more difficult for me than anybody else to realize that the ZTS approach
was the wrong path to go to as it was my baby project.

BTW, for the love of [insert here], I'm not talking about killing thread
safety.  It's useful for long running processes, and who knows, maybe in
the future we'll have threads inside PHP.  But I *am* talking about
telling people that using ZTS in production is not recommended and that
they should be using FastCGI instead.

Zeev

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to