Jäta menüü vahele
PHP7 + Joomla 3.5

Blogi

Ülevaade: veebileht PHP 7 ja Joomla! 3.5 abil kaks korda kiiremaks

Rene Korss

17.05.2016

PHP 7 jõudis avalikkuse ette 3. detsembril 2015 ja Joomla! 3.5 31. märtsil 2016. Selle blogipostituse ajaks on PHP viimane versioon 7.0.6. Joomla! uue versiooni väljaandmisega läks oodatust kauem aega, kuna probleeme oli andmebaasi kodeeringuga ja mõne teise pisiveaga. Tegu ei olnud PHP 7-st tulenevate muudatustega. Selleks oldi valmis juba tunduvalt varem. Nüüdseks on Joomla! 3.5 juba väljas olnud peaaegu 2 kuud ja saanud vigade parandusi.

Oleme uuendanud paljude klientide veebilehed uusimale CMS versioonile, mis on andnud väga häid tulemusi. Kiiruse ja üldise jõudluse kasvu tõstmiseks on parim kooslus veebilehe või -rakenduse uuendamine uusimale CMS ja PHP versioonile. Toon välja jõudluse paranemise tulemused meie enda veebilehe näitel. Tähelepanuväärne on see, et tegu on vaid versiooniuuendustega, koodimuudatusi jms me ei teinud.

Mälukasutus ja laadimisaeg enne (PHP 5.6 ja Joomla! 3.4.8)

Mälukasutus ja laadimisaeg enne (PHP 5.6 ja Joomla! 3.4.8)

Mälukasutus ja laadimisaeg pärast (PHP 7 ja Joomla! 3.5.1)

Mälukasutus ja laadimisaeg pärast (PHP 7 ja Joomla! 3.5.1)

Piltidelt võib näha, et laadimisprotsessid on märgatavalt kiiremad. Võrdlen järgnevas tabelis afterInitialise, afterRoute ja afterDispatch protsesside laadimist, kuna need on ühed olulisemad Joomla! eluringis.

PHP 5.6PHP 7
afterInitialise79.3ms51.8ms
afterRoute12.3ms6.32ms
afterDispatch43.8ms1.01ms
Kokku135.4ms59.13ms

Tabelist on selgelt näha, et antud protsesside laadimine toimub rohkem kui 2x kiiremini kasutades PHP 7-t.

Kogu mälukasutus PHP 5.6 puhul on ~8MB ja PHP 7 puhul ~5MB, andes võiduks 3MB, mis tähendab 37.5% säästetud mälu, jättes rohkem mälu muudele protsessidele. Tulemuseks on rakendus, mis suudab töödelda korraga rohkem üheaegseid päringuid. Seega suudab rakendus teenindada rohkem üheaegseid kliente (rakenduse scalability kasv).

Lisaprogrammide kokkusobivus uue versiooniga

Selleks, et Joomla! 3.5 koduleht oleks PHP 7-ga kokkusobiv, tuli teha üks väike, kuid oluline muudatus, mis võib katkestada lisaprogrammide töö. Täpsemalt muudeti üks PHP klass nimega String ümber StringHelper-iks, kuna String on PHP 7-st alates kaitstud klassi nimi.

Enamlevinud lisaprogrammid on kohandatud või ei vajanud kohandamist ja töötavad kenasti. Kuid kindlasti ei tasu klientidele kättesaadavat Joomla! veebilehte lihtsalt uuendama asuda. Selleks on vaja luua kõrvale testversioon, kus uuendused teha ja kõik läbi testida, et veeb töötaks tavapäraselt. Kui olete hädas uuendamisega või soovite seda teha 100% valutult, võite pöörduda meie poole.

PHP versioonid

  • PHP 5.3 – tugi lõpetatud – ei tohiks enam kasutada.
  • PHP 5.4 – tugi lõpetatud – ei tohiks enam kasutada.
  • PHP 5.5 – turvavigade uuendusi pakutakse kuni juuli 2016 lõpuni.
  • PHP 5.6 – arendatakse veel aasta lõpuni, seejärel pakutakse turvavigade parandust 2 aastat.
  • PHP 7 – toetatakse kuni 2018. aasta lõpuni ja hiljem pakutakse turvavigade parandusi.

Kui Teie veeb või rakendus jookseb hetkel PHP versioonil, mis on väiksem kui 5.6, soovitame tungivalt uuendada PHP versiooni, kuna turvaauke ei parandata ja nende esinemisel on veeb ja serveris asuvad failid ohus. Muidugi soovitame uuendada ka versioonilt 5.6, sest kiiruse kasv ja mälukasutuse kokkuhoid on märkimisväärne. Ülaolevast võrdlusest saab järeldada, et laadimisaeg kasvab 2x ja mälukasutus väheneb ~40%.

Oleme soovi korral meeleldi uuendusprotsessis abiks ja võime kogu protsessi oma kanda võtta. Oluline on teada, et vanad rakendused (peamiselt erilahendused) võivad vajada koodimuudatusi (aitame samuti meeleldi), et toetada uusimat PHP versiooni. Levinumate CMS-idega ei tohiks probleeme olla, kuna tugi on juba lisatud, kuid kindlasti tasub eelnevalt selles veenduda ametliku veebilehe kaudu.

Uuenduse ja/või arendussoovi korral võta meiega ühendust telefonil 776 9222 või e-posti teel info@redwall.ee.

Joomla! 3.5 uuenduste kohta saab lugeda minu poolt eesti keelde tõlgitud Joomla! 3.5 tutvustuslehelt.

Teemad: