PHP 8.1 – test wydajności i co nowego?

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.

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.

Tagi:

Podziel się postem :)

Najnowsze:

Bezpieczeństwo

Poradnik: Zabezpiecz swój dom – masz w nim masę urządzeń podatnych na ataki cyberprzestępców

Polacy mają w swoich gospodarstwach domowych coraz więcej urządzeń elektronicznych podłączonych do internetu. Choć wciąż mówimy o kilkunastu lub kilkudziesięciu sprzętach – a nie kilkuset, jak to przewidywano w pewnych badaniach – niekwestionowanie zauważalny jest wzrost ich liczby. Z tego względu należy podjąć wszelkie kroki, by zabezpieczyć swoją domową sieć.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *