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

Reply via email to