PHP 8.1 to kolejna aktualizacja w popularnym języku dynamicznej budowy stron i aplikacji. Zawiera wiele nowych funkcji, udogodnień i lepszą wydajność.

Co nowego?

  • Enums – oferuje znacznie rozszerzoną obsługę modelowania danych i niestandardowych definicji typów.
  • Readonly – właściwości tylko do odczytu, które nie mogą być zmieniane po inicjalizacji, czyli po przypisaniu do nich wartości.
  • Never return type – typ dodany do funkcji zatrzyma wykonywanie dalszego kodu oraz nie zwróci wartości.
  • Final class – możliwe jest zadeklarowanie końcowych stałych klas, aby nie można ich było nadpisać w klasach dziedziczonych.
  • Fibers – są sposobem na tworzenie bloków kodu, które można wstrzymywać i wznawiać jak generatory, ale z dowolnego miejsca.
  • Obsługa rozpakowywania tablic z kluczem łańcuchowym.

Funkcje związane z wydajnością w PHP 8.1

  • Zaplecze JIT dla ARM64 (AArch64)
  • Pamięć podręczna dziedziczenia
  • Szybkie rozpoznawanie nazw klas
  • Poprawa wydajności timelib i ext/date
  • Ulepszenia iteratorów systemu plików SPL
  • optymalizacje serializacji/deserializacji
  • Optymalizacja niektórych funkcji wewnętrznych (get_declared_classes(), explode(), strtr(), strnatcmp(), dechex())
  • Ulepszenia i poprawki JIT

WordPress z PHP 8.1

Aktualna wersja WordPress 5.8.2 zgłasza 22 błędy „Deprecated”, a z dodatkową instalacją WooCommerce 6.0.0 jest już takich błędów 27. Przestarzałe funkcje zostaną zapewne zastąpione w najbliższych aktualizacjach, tak jak to ma miejsce w PHP 8.0 gdzie takie błędy nie występują.
Starsze wersje WordPress, motywy czy pluginy, mogą nie być w pełni kompatybilne z PHP 8.1. Nasze badania popularności WordPress w listopadzie 2021 roku, wykazało że najnowsza wersja jest wykrywana na niespełna 25% stron.

Test wydajności WordPress bez pluginów

Przeprowadziliśmy test 250 jednoczesnych zapytań do testowej strony, ponawiając test 25 razy, dla uzyskania najczęstszego czasu odpowiedzi.
Dominantą dla PHP 8.1 był czas odpowiedzi 1451 ms, a testy realizowaliśmy w Apache JMeter.

Dominanta dla PHP 8.1 w Apache JMeter

PHP 8.1 jest szybszy o 6% od PHP 8.0!

Czas odpowiedzi – request time (sekundy)

Jak widać, czasy odpowiedzi najnowszej wersji PHP uzyskują najlepsze wyniki. Od wersji 8.0 jest szybszy tylko o 6%, ale już dla 7.X jest to prawie 40%!

WordPress + WooCommerce

Nasza testowa instalacja zawierała 1000 produktów, a WooCommerce był w wersji 6.0.0 oraz motyw Storefront 3.9.1
Strona główna wyświetlała 30 produktów sklepu i była znacznie bardziej wymagająca od powyższego czystego WordPressa. Ilość jednoczesnych połączeń zmniejszyliśmy do 50, również ponawiając test 25 razy.

Czas odpowiedzi – request time (sekundy)

Wersja PHP 8.1 była ponownie najszybsza i od wersji 8.0 było to już prawie 9%.

PageSpeed Insights

Lepszą wydajność PHP 8.1 również wykazało PageSpeed. Wydajność desktop tej samej instalacji WordPressa z WooCommerce w wersji PHP 7.1 uzyskało ocenę 97, gdy na PHP 8.1 było to 99

WordPress + WooCommerce PHP 7.1 – desktop
WordPress + WooCommerce PHP 8.1 – desktop

Dla urządzeń mobilnych w wersji PHP 7.1 uzyskało ocenę 80, gdy na PHP 8.1 było to 86

WordPress + WooCommerce PHP 7.1 – komórka
WordPress + WooCommerce PHP 8.1 – komórka

Kiedy PHP 8.1 będzie dostępne na serwerach?

Od dzisiaj wersja PHP 8.1 jest dostępna na naszych serwerach. W panelu DirectAdmin w zakładce „Wersja PHP dla domen” można przypisać wersję dla danej domeny lub w zakładce „PHP – ustawienia globalne” ustawić domyślną wersję PHP dla wszystkich domen dodanych do usługi hostingowej.

Więcej o specjalnych hostingach pod Twój WordPress czy sklep internetowy na WooCoomerce:

>
Artur Wolański
Od 16 lat miłośnik zagadnień hostingowych i statystycznych. Prywatnie motocyklista.

2 odpowiedzi do "PHP 8.1 – test wydajności i co nowego?"

  1. Karol pisze:

    Osobiście czekam aż wszystkie pluginy zostaną zaktualizowane do nowej wersji (zwłaszcza te niszowe) i dopiero przejdę na nową wersję PHP co mnie bardzo cieszy. Z pewnością użytkownicy odczują zmiany w prędkości ładowania samej strony ^^.

  2. Tom pisze:

    Zmieniam zawsze na nową wersję a jak jakieś wtyczki nie obsługują to po prostu wymieniam z reguły wtyczki na nowsze innego typu.

Dodaj komentarz

Twój adres e-mail nie będzie opublikowany.

Polecane dla Ciebie

Szukasz dalej?