Nowości w PHP 5.5 część 1 – Zend Opcache

PHP 5.5

Jak zapewne wiecie 20 czerwca miało miejsce dość istotne wydarzenie dla programistów PHP. Mianowicie PHP doczekało się stabilnej wersji 5.5 (a nawet już 5.5.1). Z tej okazji postanowiłem, że napiszę kilka postów o tym co ciekawego przygotowali dla nas panowie z Zend Technologies.

Zend Opcache

Jest sobie takie coś jak Zend Opcache – niegdyś znane jako  Zend Optymizer+. Ten wynalazek to także część Zend Servera (również wersji Community).  No dobrze ale co to w ogóle dobrego robi?

Otóż jak wiadomo PHP jest językiem skryptowym i przy każdym uruchomieniu skryptu kod w nim znajdujący się jest parsowany do kodu pośredniego i uruchamiany. Ten proces jest powtarzany przy okazji każdego wywołania skryptu. Tutaj do akcji wkracza Zend Opcache, który podczas wywołania skryptu sprawdza czy kod pośredni dla wywołanej wersji skryptu jest dostępny – jeśli tak to wywołuje istniejącą już kod pośredni – jeśli nie następuje parsowanie. Sporo czasu i zasobów można w ten sposób oszczędzić.

Jedną z nowości w PHP 5.5 jest właśnie integracja z Zend Opcache. Jedyny „problem” w zasadzie polega na tym że trzeba go „ręczenie” włączyć. Aby to uczynić należy w pliku php.ini poszukać sekcji [opcache]. Tam należy dopisać „zend_extension=’pełna/sciezka/do/pliku/rozszerzenia” i podać odpowiednią nazwę w zależności od systemu. Ostatnim krokiem jest znalezienie wartości „opcache.enable=0” i zmiana jej na 1.

Efekty można zauważyć gołym okiem ale żeby nie być gołosłownym zrobiłem test za pomocą Apache Benchmark. W tym celu postawiłem Drupala w wersji 7.22 i wykonałem test z następującymi parametrami:  ab –n 1000 –c 10 –k http://localhost/drupal/index.php. Wynik z włączony opcache poniżej:

with_opcache

Wynik jak wynik. Jednak zupełnie inaczej się na niego patrzy gdy zobaczy się wyniki pomiaru na tej samej platformie ale z wyłączonym opcachem. A taki właśnie jest poniżej.

without_opcache

Różnica między nimi jest delikatnie mówiąc gigantyczna. Z resztą na tej stronie w sekcji „Benchmark” jest link do dokumentu zawierającego wyniki testów wydajności przeprowadzonych dla Zend Frameworka, typo3 i paru innych. Jest tam również porównanie z APC. Szczególnie różnica w przypadku ZF i typo3 robi wrażenie.

Czy wobec tego jeśli chcemy przyspieszyć nasze aplikacje internetowe jesteśmy zmuszeni migrować do PHP 5.5? Nie. Ponieważ można sobie osobno zainstalować ZendOpcache pod warunkiem, że używa się PHP 5.2+. Oto stosowny link.

Problem w tym, że wsparcie dla wersji 5.2 może zostać wycofane w przyszłości, a od 11 lipca nie będą ukazywać się już nowe wersje PHP 5.3 (poza poprawkami bezpieczeństwa). Tak więc jedyny rozsądny wybór to albo 5.4 albo 5.5.

Posty które mogą Cię zainteresować:

Dodaj komentarz

Your email address will not be published. Please enter your name, email and a comment.