Бинарники полученные с разных языков не одинаковы по скорости выполнения.
Все от компилятора зависит, и от либ. Да, есть там различия fastcall/stdcall и пр., но это все совсем уж слезы, тем более на современных процах. Остаются либы - либы тут все так и остались из PHP. И судя по тому, что сам PHP и так писан на сях, что-любо ускорять внутри этих либ особо не собираются.
Что еще? Переключение контекста? Его и так нет, и выполнение опкода, и "вкомпиленный" бинарник выполняются одинаково. Дальние вызовы? Ну может быть, я в такие дебри zend не лазил. Хотя тоже вряд ли, скорее всего там обычные 0xC9 xx xx xx xx.
Что еще остается? Memory management, весь i/o - все это стандартное от php. Остается еще время на разбор опкода против времени на выполнение "собранного" бинарника. Собирать бинарник можно по-разному, но что-то мне подсказывает что тут "транслированный" опкод сразу на eip. Это в лучшем случае, в худшем - все тот же опкод+обработчик. Ну ладно, считаем что в фейсбуке не дураки и реально генерят шитый код из php'шного опкода. Да, это должно быть быстрее, но опять же - на сколько? При нынешних-то гигагерцах..
Что я упустил? Откуда 50% ускорения? Может это если сравнивать с парсингом?