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