Implementiramo PHP 7.3 i uspoređujemo ih s drugim verzijama

Od danas na našim poslužiteljima postoji najnovija verzija PHP 7.3. To donosi mnoge promjene, nove značajke i poboljšanja – jedan od posljednjih je povećanje brzine obrade skripti u odnosu na prethodne verzije. Sve vijesti vezane uz PHP 7.3 mogu se naći u “Što je novo u PHP-u 7.3?” I u međuvremenu idemo na testove

Kako bismo usporedili najnovije verzije PHP-a, stvorili smo nalog u premium-ssd-www paketu (preporučeno, između ostalog, za internetske trgovine) na redovnom poslužitelju na kojem se kreiraju nalozi kupaca – trenutno je to s21 stroj – to je vrlo važna informacija zbog činjenice da je većina testova s kojima smo se susreli do sada provedeni u “laboratorijskim” uvjetima, tj. na mjestima kreiranim posebno za testiranje PHP-a. Mi smo, zauzvrat, analizirali rad skripti sa gledišta normalnog korisnika kako bi rezultati bili pouzdaniji. Svaku testiranu skriptu testirali smo deset puta, a zatim smo izvadili prosjek rezultata.

 PHP 5.6PHP 7.0PHP 7.1PHP 7.2PHP 7.3
bench.php2.680 s1.038 s0.749 s0.499 s0.385 s
povećanje brzine u usporedbi s prethodnom verzijom158%39%50%29%
povećanje brzine u usporedbi s PHP 5.6158%258%437%596%
 PHP 5.6PHP 7.0PHP 7.1PHP 7.2PHP 7.3
micro_bench.php12.632 s4.241 s3.569 s2.845 s2.454 s
povećanje brzine u usporedbi s prethodnom verzijom198%18%25%15%
povećanje brzine u usporedbi s PHP 5.6198%253%344%415%

Kraće vrijeme je bolje. 🙂

Nekoliko riječi o korištenim skriptama

bench.php

Ova skripta uglavnom obavlja zadatke u petljama, osim za jednostavne funkcije (koje u petlji obavljaju povećanje vrijednosti varijable, izračunavaju duljinu niza ili pozivaju praznu funkciju) sljedeće zadatke:
– izračunava zbirku Mandelbrot,
– obračunava Ackermannovu funkciju,
– izračunava Fenomenski redoslijed,
– sortira hrpu,
– stvara višedimenzionalni niz

Izvor: https://github.com/php/php-src/blob/master/Zend/bench.php

micro_bench.php
ova skripta također se oslanja na petlje i izvršava, između ostalog sljedeće zadatke:
– poziva funkciju u petlji,
– čita vrijednost svojstva objekta,
– sprema vrijednost u svojstvo objekta,
– provjerava je li objektu dodijeljena vrijednost,
– provjerava nije li vrijednost svojstva objekta prazna,
– poziva metodu objekta,
– čita vrijednost statičkog svojstva objekta,
– sprema vrijednost u statičko svojstvo objekta,
– provjerava je li vrijednost dodijeljena statičkom svojstvu objekta,
– provjerava nije li vrijednost statičkog svojstva objekta prazna,
– poziva statičku metodu objekta

Izvor: https://github.com/php/php-src/blob/master/Zend/micro_bench.php

Kao što možete vidjeti skripte od verzije do verzije rade brže i brže.

Gore navedena ispitivanja provedena su prema referentnoj vrijednosti za usporedbu performansiPHP Performance Comparison 2018 and 2017 koju je stvorio Christian Vigh.

Preporučujemo da sami izvršite testove performansi PHP 7.3 na hostingu SSD
– sve što trebate učiniti je odabrati neki od hosting paketa, jer je svaki od hosting računa u PHP 7.3 standardu.

Michał

Odgovori