Why is PHP 5.3 on Windows faster than previous PHP versions?


Last week I had the good fortune of hearing Rasmus Lerdorf speak at the Seattle PHP Meetup. His talks was excellent – it was sprinkled with history, personal stories, tips, best practices, and insights into what he’s thinking about for the future. At one point, during a section on best practices, he urged everyone to move to PHP 5.3 if they hadn’t already. He added (and I’m paraphrasing here), “If you aren’t running PHP 5.3 on Windows, you’re lucky…because you have a 40% performance boost coming.” He clarified this by saying that, with some help from Microsoft, improvements were made in PHP 5.3 that led to a 40% performance improvement of PHP on Windows. Because he didn’t go into the details of why this performance boost was realized, I got questions in email the next day asking about why. So, here’s a slide from a presentation I did last year that explains why (I actually borrowed this slide from a presentation that Pierre Joye did…you can see his complete presentation, which has more detail, here:http://www.slideshare.net/pierrej):

image

As you can see from the slide, there are 3 main reasons for the performance improvement:

  1. PHP 5.3 is compiled with the VC9 compiler (also known as the Visual C++ 2008 compiler).
  2. Rather than calling the POSIX abstraction layer in the Windows build of PHP, the Win32 API is called directly.
  3. PHP library management was improved in PHP 5.3.

Clearly, that’s the short answer, but it should give you some idea of why PHP 5.3 is 40% faster on Windows than previous versions of PHP.

Thanks.

-Brian

Share this on Twitter


Comments (5)

  1. Anonymous says:

    This is nice! It will also be interesting to see some benchmark similar to  MySQL 5.5's 500-1,500% performance gain over 5.1 on Windows  (dev.mysql.com/…/mysql-55-faster-on-windows.html)

  2. Anonymous says:

    Maybe should/could have used mingw GCC–keep things nice and free, and is speed on par with VC9 🙂

  3. Anonymous says:

    Interesting. Now I understand the technical reasons why PHP 5.3 is not working on some old versions of Windows like 2k or XP with the first pack(s).

  4. Anonymous says:

    From our benchmarks, PHP 5.3 with WinCache 1.1 is really quite fast on Windows (much better than old PHP 5.2)… Still there is a solutions that performs even better on Windows and it can even run in 64bit mode. http://www.php-compiler.net/benchmarks

  5. Anonymous says:

    PHP on Windows? Lame. The next thing you know we'll be wanting to run Honeycomb on iPhone.