On Tue, Feb 1, 2011 at 9:53 AM, Stas Malyshev <smalys...@sugarcrm.com> wrote: > Hi! > >> The filesystem issues are mostly due to what we do in TS mode, way too >> much pointless operations, even if the real cache helps a little bit >> here (take this comment with a bit of salt: as in delta with the cache >> between TS and NTS). > > What we do in TS mode with filesystem that could explain the difference to > Linux?
No, but TS vs NTS as my comment said. >The filesystem problem is just that something like file_exists() > (which a lot of apps use very extensively) takes a lot more time, and it's > not cached by anything above the OS. And even with the OS cache on Windows > such operation is significantly slower. This delta has very little impact on real world apps except those doing exclusively such ops. > The only way we can be faster in threaded model if we don't do a full > context switch (i.e., if we don't fully isolate one thread from another) - > otherwise we'd be just emulating OS code doing the same thing but by slower > user-level means (that's effectively what we do with ZTS because we have no > choice there). I can't even begin to imagine how PHP engine could work > without full thread isolation. I'm afraid if I think about it more I'd get > nightmares. But if you think it's possible you are very welcome to try. Most of what with do with EG&co do not actually need thread isolation but thread local data (TLS). There are a couple of areas where we actually need locks but not necessary global locks as we do now. To be more clear, I'm not (hell not) talking abut parallelism, or sharing engine's data across threads but how we achieve thread safety for the shared data or which data we have to share or not, or TS APIs (*_r). Cheers, -- Pierre @pierrejoye | http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php