Today we announce the general availability of the Windows Cache Extension for PHP 1.0 (affectionately known as “WinCache”), which is an open source built-for-Windows caching extension to the PHP engine. You can view, contribute and download the source code for WinCache at the PHP repository for extensions (http://pecl.php.net/package/WinCache), where we have joined other Linux-based PHP caches.
I wanted to thank Pierre Joye for his invaluable help in helping connect the IIS product team with PECL, and for agreeing to host the WinCache binaries on http://windows.php.net.
We cordially invite the PHP development community to join us in development of this caching extension for PHP on Windows. We already have gotten one contribution from the community in our pre-release mode and are very excited to have others join this new PHP on Windows caching community. The IIS team at Microsoft is going to start off the v2.0 development by adding a user cache and lazy class loading to the opcode cache, file cache, and relative file cache that is available today in WinCache 1.0.
I am proud of the WinCache project for many reasons, including:
- WinCache solves a real customer problem. WinCache provides a Windows PHP caching extension that is free and part of the PECL extension library, and can accelerate the performance of all PHP applications on Windows.
- WinCache is our first big open source contribution to the PHP on Windows community. The IIS team has made several code contributions (big fixes) to the PHP 5.3 release, as well as provided support for the Windows Installer for PHP community (John Mertic rocks) and the Windows documentation on the PHP website. This WinCache release is a substantial amount of code that we are open sourcing on the PECL extension library. We hope others join this new community to help accelerate PHP performance on Windows.
- WinCache represents a series of “firsts” for Microsoft…first time Microsoft has contributed to the PECL repository, first Windows-based PHP cache, first joint community project between Microsoft and the PHP development community, first BSD license for the IIS team….and the list goes on. The WinCache feature team of Ruslan, Kanwal and Don are incredibly passionate about PHP on Windows, respond to their blog and forum comments, and lurk on the PHP on Windows mailing list if you want to connect with them.
Here’s some more information about WinCache.
What is WinCache?
WinCache is actually a collection of three caches:
- An opcode file cache, just like the one that APC provides to cache compiled PHP code
- A file cache to help when your PHP scripts run on remote servers. This is net new functionality that is not available in other caching modules at the time of this blog.
- A relative file cache to cache relative file paths for when you are running PHP scripts on remote servers.
WinCache itself was designed, written, and tested by the IIS engineering team that also brings you FastCGI, the core PHP hosting platform in IIS. We are planning to add more caches to WinCache in 2010.
What is the WinCache license?
WinCache is licensed under BSD.
How do I get WinCache?
You can compile WinCache as part of your PHP compilation from the PECL library.
If you download any PHP application from Web Platform Installer and/or the Windows Web Application Gallery (WordPress, Moodle, SilverStripe, SugarCRM, Acquia Drupal, Gallery 2, and any other new PHP app in the Web App Gallery), you will automatically get WinCache installed on your IIS computer as part of the PHP application install. We want to make sure that your PHP application deployment and hosting experience is great on Windows.
How do I learn more about WinCache?
You can learn more about WinCache’s features and how to get started on the http://php.iis.net community site. You can also check out the blogs for the feature team (Kanwal, Ruslan, Don) or visit the community forum which is supported by the feature team and WinCache community.
How much faster is it to run WinCache with my PHP application?
We are seeing quite a significant increase in performance. But don’t take our word for it. Check out the perspective of other members of the PHP developer community:
We hope that others try WinCache and publish their findings as well.
Why is Microsoft investing in making PHP run faster?
IIS is all about making apps run at their finest on IIS. We have a built-in advantage with ASP.NET apps because we can walk down the hallway in our building here in the Seattle area to talk to the ASP.NET team about how to make the ASP.NET on IIS experience better. But we also care deeply about the PHP experience on IIS – there are some amazing applications like WordPress and Drupal that form the foundation of many a Web site on the Internet. We are committed to making those applications run great on Windows, which is the primary motivation for our WinCache project.
How do I learn more about WinCache?
To learn more about WinCache, you can check out:
- The PECL documentation on WinCache
- The PHP on Windows feature team (Kanwal, Ruslan, and Don) blogs
- The WinCache community forum
- The IIS.NET documentation on WinCache
- The source code of WinCache on PECL, licensed under BSD
- How to file bugs on WinCache in PECL