Testiranje brzine različitih verzija programskog jezika PHP

Za potrebe testiranja trajanja izvršavanja nekog koda na različitim verzijama PHP-a napravljena je jednostavna skripta koja generira slučajan broj i provjerava je li taj broj primaran. Skripta na kraju javi trajanje izvršavanja u sekundama. Čitav kod skripte dostupan je na poveznici: https://gist.github.com/cicnavi/90fd0c63498733578ecdc1c2a1e5202c

Skriptu je moguće pokretati na različitim verzijama PHP-a pomoću Docker kontejnera. Na primjer, da bi se skriptu pokrenulo pomoću verzije PHP-a 5.6, potrebno je pozicionirati se u direktorij u kojem se nalazi spomenuta skripta te unijeti sljedeću naredbu (koristi se PowerShellom):

docker run -it --rm --name phpspeed -v ${PWD}:/usr/src/phpspeed -w /usr/src/phpspeed php:5.6-cli php phpspeed.php >> 56.txt

Rezultat izvršavanja skripte (trajanje izvršavanja u sekundama) sprema se u tekstualnu datoteku (u gornjem primjeru u datoteku 56.txt). Ista stvar se napravi za sve trenutačno aktualne verzije PHP-a: 5.6, 7.0, 7.1 i 7.2.

Kako bi bilo što realnije, testiranje je potrebno ponoviti više puta kako se ne bi dogodilo da je računalo na kojem se pokreću kontejneri u jednom trenutku zauzeto izvršavanjem nekog drugog zahtjevnog procesa.

Čitava stvar se može skriptirati u PowerShellu. U ovom slučaju testovi će se pokrenuti 100 puta, a u svakoj iteraciji svaki kontejner će se pokrenuti zasebno. Za to se može koristiti jednostavna for petlja u PowerShell skripti:

Nakon završetka izvršavanja skripte stotinu puta na svim verzijama PHP-a, prosječno vrijeme izvršavanja je kako slijedi:

Već na prvi pogled jasno je da PHP verzija 7.0 donosi značajno poboljšanje performansi, a svaka sljedeća verzija donijela je blago poboljšanje u performansama u odnosu na prethodnu verziju. To znači da samim prelaskom na novu verziju PHP-a možemo računati na brži rad svojih aplikacija.