Ze(nd Engine) Ph(p) I(nte)r(mediate), czyli dzisiaj o nowym narzędziu do tworzenia i utrzymywania rozszerzeń dla PHP.
Niedawno odwiedziłem stronę: https://zephir-lang.com/
PHP is one of the most popular languages in use for the development of web applications. Dynamically typed and interpreted languages like PHP offer very high productivity due to their flexibility. Since version 4 and then 5, PHP is based on the Zend Engine implementation. This is a virtual machine that executes the PHP code from its bytecode representation. Zend Engine is almost present in every PHP installation in the world, with Zephir, you can create extensions for PHP running under the Zend Engine. PHP is hosting Zephir, so they obviously have a lot of similarities, however; they have important differences that give Zephir its own personality. For example, Zephir is more strict, and it could be make you less productive compared to PHP due to the compilation step.
Postanowiłem sprawdzić czy rzeczywiście następuje przyspieszenie. Jednym z najczęciej wykorzystywanych funkcjonalności w sklepie internetowym jest obliczanie ceny. W tym celu przepisałem jedną z naszych libek: https://packagist.org/packages/ayeo/price do formatu Zephira, skompilowałem i wykonałem test wydajności na prostym rachunku:
Wersja php:
Wersja z przekompilowanego rozszerzenia:
W każdej iteracji kwoty netto były losowane z przedziału od 10 do 100, działanie pozostawało te same. Poniżej wyniki:
Jednak nie kłamali: 3-krotnie szybszy kod 🙂
Autorem tekstu jest Marek Rode.