On Tue, Jan 29, 2013 at 1:15 PM, Pierre Joye <pierre....@gmail.com> wrote: > > > On Jan 29, 2013 12:10 PM, "Zeev Suraski" <z...@zend.com> wrote: > > > > > The other main reason from my side to keep ZTS is Windows. Windows > > cannot > > > perform well using process based SAPI. > > > > Windows actually works quite well with FastCGI. So well Microsoft even > > created their own version for IIS. It's outperforming the ISAPI module by > > a wide margin. > > Laziness and design mistake. Everything on windows (AD,IIS, asp.net, etc) > uses thread. > > And no, nuts is not faster. I am not talking about PHP zts, but in general.
Of course everything that is Windows native uses threads, but I don't believe any language that is single-threaded on other platforms - has a thread safe version for Windows. I disagree that laziness and design mistakes are what makes ZTS slower. It's slower by design, since instead of relying on operating system isolation - you have to emulate it yourself in userland code. Contrary to popular belief FastCGI actually works very very well on Windows, and has substantial advantages over using a server module - even on Linux (it's no coincidence that there are hoards of users migrating from Apache to nginx, where a server module isn't even an option - and they're seeing better performance, not worse). > > > Other than Apache/Windows not having FastCGI support(*), I really can't > > imagine any situation where using ZTS inside of a Web Server context makes > > any sense at all. I wouldn't call it a new trend, it's both old (I've > > been pushing for it since at least 2006, probably earlier) and with very > > solid technical reasons (faster, more reliable). > > Miss the rest of my mail or? Current implementation is outdated and slow. How does it relate to what I said? Regardless, a new implementation of ZTS will not change the fundamentals. We're unlikely to ever achieve single-threaded performance or reach the same level of stability with ZTS. With a system like PHP that is all about concurrency of stateless, independent requests - I don't think we're going to reach any meaningful limits any time soon. FastCGI has another huge advantage, in that it breaks the 1:1 linkage between a 'processing unit' (a web server process or thread) and a PHP instance, and makes it an n:m mapping - in that you could have a lot more web server processing units than you would need PHP instances. That's one of the key reasons you can achieve better performance / density with PHP on nginx than you can with Apache. The same would apply to IIS - ISAPI vs. FastCGI. Zeev -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php