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:
As you can see from the slide, there are 3 main reasons for the performance improvement:
- PHP 5.3 is compiled with the VC9 compiler (also known as the Visual C++ 2008 compiler). One of the features that is available in the VC9 compiler (and wasn’t available in VC6) is Profile Guided Optimization (PGO).
- Rather than calling the POSIX abstraction layer in the Windows build of PHP, the Win32 API is called directly.
- 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