Język PHP nieustannie jest rozwijany przez twórców oraz ciągle wydawane są nowe wersje. W dniu 28 listopada 2019 została wydana stabilna wersja PHP 7.4, która niesie ze sobą nowe funkcje, usprawnienia oraz poprawę wydajności.
Co nowego w PHP 7.4?
Jakie zmiany możemy zaobserwować w nowej wersji PHP względem poprzednich?
Wstępne ładowanie (ang. preloading) – dzięki korzystaniu z PHP oraz OPcache, który jest domyślnie zainstalowany na naszych serwerach można uzyskać większą wydajność. Kod aplikacji jest najpierw kompilowany, a następnie zapisywany w pamięci. Pozwala to wykorzystać dane, które zostały umieszczone w przestrzeni pamięci i uniknąć ponownej kompilacji kodu
Funkcje strzałkowe (ang. arrow functions) – w najnowszej wersji PHP wprowadzono również funkcje strzałkowe, dzięki czemu możemy zmniejszyć ilość kodu i zwiększyć czytelność kodu
Kod dla PHP 7.3 i starszych wersji:
array_map(function (User $user) {
return $user->id;
}, $users)
Ten sam kod zapisany za pomocą nowych funkcji strzałkowych wykorzystywanych w PHP 7.4:
array_map(fn (User $user) => $user->id, $users)
Operator spread – PHP 7.4 wprowadza również możliwość korzystania z operatora rozkładania (ang. spread operator), dzięki czemu możemy zwiększyć wydajność naszej aplikacji.
Przykład wykorzystania operatora spread:
$serwer= ['litespeed', 'redis', 'mariadb', 'php'];
$hosting= ['domeny', 'administracja', ...$serwer, 'wsparcie'];
Wydajność PHP 7.4
Aby sprawdzić jak wygląda wydajność PHP 7.4 oraz różnica w czasie ładowania stron internetowych opartych na tej wersji oraz na poprzedniej 7.3 przeprowadziliśmy testy . W tym celu wykorzystaliśmy trzy różne skrypty. Każdy z nich wykonywany był dziesięć razy, a następnie wyciągnęliśmy z wyników średnią, którą zamieściliśmy w poniższej tabeli:
bench.php | micro_bench.php | php_benchmark.php | Łączny czas | |
PHP 7.3 | 0.322 s | 1.925 s | 0.727 s | 2.974 s |
PHP 7.4 | 0.255 s | 1.696 s | 0.661 s | 2.612 s |
Różnica czasu (im mniej tym lepiej) | 0.067 s | 0.229 s | 0.066 s | 0.362 s |
Procent przyśpieszenia PHP 7.4 w stosunku do PHP 7.3 | 26% | 13% | 9% | 14% |
Różnicę między poszczególnymi testami doskonale widać na poniższych wykresach:
Ponownie widać, że najnowsza wersja PHP 7.4 jest szybsza od poprzedniej. Jak wygląda sytuacja względem wersji 7.3, a jeszcze starszymi (w większości już niewspieranymi) wersjami PHP? Rok temu opublikowaliśmy wyniki na naszym blogu na stronie: Wdrażamy PHP 7.3 i porównujemy je z innymi wersjami
Parę słów na temat wykorzystanych skryptów:
bench.php
Skrypt ten głównie wykonuje zadania w pętlach, poza prostymi funkcjami (które w pętli wykonują inkrementację wartości zmiennej, obliczają długość ciągu lub wywołują pustą funkcję) wykonuje też m.in. następujące zadania:
– oblicza zbiór Mandelbrota,
– funkcję Ackermanna,
– oblicza ciąg fibonacciego,
– sortuje stos,
– tworzy tablicę wielowymiarową.
Źródło: https://github.com/php/php-src/blob/master/Zend/bench.php
micro_bench.php
Ten skrypt również opiera się na pętlach i wykonuje m.in. następujące zadania:
– wywołuje w pętli funkcję,
– odczytuje wartość właściwości obiektu,
– zapisuje wartość w właściwości obiektu,
– sprawdza czy do właściwości obiektu jest przypisana wartość,
– sprawdza czy wartość właściwości obiektu nie jest pusta,
– wywołuje metodę obiektu,
– odczytuje wartość właściwości statycznej obiektu,
– zapisuje wartość w właściwości statycznej obiektu,
– sprawdza czy do właściwości statycznej obiektu jest przypisana wartość,
– sprawdza czy wartość właściwości statycznej obiektu nie jest pusta,
– wywołuje metodę statyczną obiektu.
Źródło: https://github.com/php/php-src/blob/master/Zend/micro_bench.php
php_benchmark.php
Głównym zadaniem tego skryptu jest wykonywanie standardowych operacji na PHP oraz opcjonalnie na bazie danych, z których korzystają WordPress, Joomla, PrestaShop czy inne CMSy:
– obliczanie działań matematycznych,
– działania na ciągach znaków,
– wywołanie pętli,
– działania na instrukcjach warunkowych if else.
Źródło: https://github.com/vanilla-php/benchmark-php/blob/master/benchmark.php
Zachęcamy do samodzielnego przeprowadzenia testów wydajnościowych oraz sprawdzenia nowych funkcji PHP 7.4 na hostingu Litespeed Każde z naszych pakietów posiada domyślnie ustawioną najnowszą wersję jakim jest PHP 7.4
- WordPress – konfiguracja wysyłki maili z autoryzacją SMTP - 15 lipca, 2024
- Jak zarejestrować nową domenę w smarthost.pl? - 12 lipca, 2023
- RoundCube – poczta elektroniczna w przeglądarce - 12 lipca, 2023