Btw, one more thing which we could consider doing (although it means more work) is to do the nts build with VC 8 and the thread-safe build with VC 6. It'd probably require another machine (either physical or virtual).
> -----Original Message----- > From: Andi Gutmans [mailto:[EMAIL PROTECTED] > Sent: Saturday, January 06, 2007 6:20 PM > To: 'Edin Kadribasic' > Cc: 'PHP Internals List' > Subject: RE: [PHP-DEV] Windows build > > Hi Edin, > > The 2% surprises me a lot. We got very different results but > it might be due to different hardware, OS (we use Windows > Server 2003) and different tests. Here's what we got (all > non-threadsafe): > > vc2005 intel msvc6 > bench 9.326 9.378 10.28 > hello 10.48 11.6 11.28 > xoops 67.82 69.49 81.34 > static 16.97 18.4 21.18 > qdig 63.52 67.05 69.57 > qdig2 14.4 15.61 19.04 > > Btw, today I never recommend running mod_php on Windows and > always point people to CGI or existing FastCGI implementations. > That said, I understand that you don't want to break things > right now and stick to VC 6. Although I know it can work in > some cases, I agree with you that running two CRTs is > probably not a great idea. While the interfaces of the CRT > functions might be identical, I am not sure all the > structures are the same and that could cause some ugliness if > we get structs like file handlers from the Apache executable > passed into PHP and vice-versa. > > It's something worth looking into but not something one would > want to rush for a minor version like 5.2.1. > > Andi > > > -----Original Message----- > > From: Edin Kadribasic [mailto:[EMAIL PROTECTED] > > Sent: Saturday, January 06, 2007 1:28 PM > > To: Andi Gutmans > > Cc: 'PHP Internals List' > > Subject: Re: [PHP-DEV] Windows build > > > > Hi Andi, > > > > Turns out the problem is that Apache is building their > binaries using > > VC6 so wrong CRT gets loaded. The only solution I found was to tell > > Windows to load Apache with msvcr80.dll instead of msvcr.dll by > > suppling a manifest file in Apache bin directory. If you crate > > Apache.exe.manifest that contains: > > > > <?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly > > xmlns='urn:schemas-microsoft-com:asm.v1' > > manifestVersion='1.0'> > > <dependency> > > <dependentAssembly> > > <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' > > version='8.0.50608.0' processorArchitecture='x86' > > publicKeyToken='1fc8b3b9a1e18e3b' /> > > </dependentAssembly> > > </dependency> > > </assembly> > > > > The Apache will load PHP and PHP will be able to load > extensions. It > > probably isn't good idea to force a different C Runtime on > Apache like > > this. > > > > Regarding performance, I found that on Zend/bench.php the > improvement > > was only marginal (2%) compared to huge increase > > (25-30%) when disabling thread support. > > > > http://edin.dk/archives/25-Benchmarks.html > > > > > > Edin > > > > > > > > Andi Gutmans wrote: > > > Hi Edin, > > > > > > Thanks for trying to get this to work! > > > > > > I think eventually it'll be the right move to go to VC8 > but I agree > > > that if it risks a successful 5.2.1 release then it might > > not be worth > > > doing that right now. If you can share with us a > > reproducing case we > > > can try and look into it and see if we can get it to work. > > So far we > > > have concentrated on CLI/CGI/FastCGi because that's the > > most feasible > > > way of running, but I agree that you also need to get the > > other methods to run. > > > > > > For those who are curious, there are some significant performance > > > improvements in VC8. Our tolower() optimization which is > > significant > > > is only for VC8, the compiler creates significantly > faster code (on > > > par with Intel C/C++ compiler), and I believe some of the CRT > > > functions like time() are also much faster. So I think it's > > definitely > > > worth upgrading but it should be well timed. > > > > > > Anyway, let us know and we'll try and dig deeper and help > get this > > > puppy ported and update the build. There probably is some > work that > > > needs to be done on the 3rd party libs. > > > > > > Thanks. > > > > > > Andi > > > > > >> -----Original Message----- > > >> From: Edin Kadribasic [mailto:[EMAIL PROTECTED] > > >> Sent: Friday, January 05, 2007 7:48 PM > > >> To: PHP Internals List > > >> Subject: [PHP-DEV] Windows build > > >> > > >> Hey, > > >> > > >> It seems that VC++ 8.0 (Visual Studio 2005) brings more > > trouble that > > >> its worth. Mainly the way it deals with the C runtime. > > After spending > > >> hours and hours of trying to figure out the way to make PHP work > > >> under Apache on Windows and be able to load extensions, > > I'm throwing > > >> in the towel. > > >> > > >> I can get PHP to work fine on the command line, both cgi > > and cli. It > > >> also works fine under IIS using fastcgi. But loading sapi > > dll into a > > >> webserver (not using php.exe or php-cgi.exe) works for the sapi > > >> itself, but trying to load any extensions via php.ini fails > > >> miserably. Sometimes you will get an error that the C > runtime was > > >> attempted to be loaded in an illegal way, sometime PHP > will claim > > >> that the extension does not exist, etc. > > >> > > >> I looked around at other projects and everyone seems to be > > using VC++ > > >> 6.0 for their builds (Active state, apache, ...) which > > eliminates all > > >> the hassle with bundling C runtime, etc. > > >> > > >> So I think the best thing for us would be to stick to the > > good old C > > >> compiler for making the Windows distro. > > >> > > >> Edin > > >> > > >> -- > > >> PHP Internals - PHP Runtime Development Mailing List To > > unsubscribe, > > >> visit: http://www.php.net/unsub.php > > >> > > > > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php