Phalanger is a PHP compiler for the .NET and Mono runtime. It is currently capable of running popular PHP based applications such as WordPress. With the exception of indirect invocation of static methods, Phalanger now offers across the board performance improvements over PHP 5.3.1.
As you can see in the below chart, there are been significant between June’s build and yesterday’s release. Much of these improvements are directly attributable to the incorporation of the Dynamic Language Runtime (DLR).
Before DLR, we were classifying operations into two cases (not counting eval), bound during compilation and bound during run time. The goal for Phalanger as dynamic language compiler is to compile as much as possible as compile-time bound operations and use runtime-bound operations only for cases that can’t be determined during compilation. DLR caching system allows compiling operation at run time when we know particular types for the operation and store compiled operation into cache. This can work efficiently because of the idea that when particular operation occurs, there is a big chance that the next time operands will have the same type.
Phalanger 2.1 is available on CodePlex under the Apache open source license. For a walkthrough that shows how to set it up see Miloslav’s article titled WordPress on .NET 4.0.