Php applicaties of scripts versnellen en optimaliseren

Php is een zeer toegankelijke programmeertaal dat gebruikt door hobbyisten tot internationale bedrijven als Facebook met high-traffic sites. De schaalbaarheid en snelheid is afhankelijk van de opzet van de Php-applicatie.

In de praktijk komt het regelmatig voor dat overzichtspagina's of Excel- / CSV-exports in Php enkele minuten kunnen duren voordat het bestand of de pagina is gegenereerd.

Regelmatig wordt er dan de schuld gegeven aan een van de volgende punten,


Uiteraard kan hier een kern van waarheid in zitten. In de praktijk is het echter zo dat programmeren vele manieren van aanpak kent. De oplossing is vaak verschillende methoden te proberen en te kijken wat er werkt.


Stap 1, bepaal wat er traag is
Het belangrijkst te weten is wat er traag is. Vaak is dit 1 betreffende url of Php-script. Door het script meermaals uit te voeren en 'exit;' op diverse plekken aan te roepen is vaak snel te achterhalen wat de vertragende factor is.

Middels xdebug/cachegrind is het ook mogelijk een overzicht te krijgen welke functies worden aangeroepen en hoeveel tijd dit in beslag neemt.





Stap 2, probeer verschillende mogelijkheden
Vaak zijn overzichten traag doordat de database-queries er achter veel joins bevatten, of alle data in 1x wordt opgehaald. Het los ophalen van koppeltabellen en deze opslaan in associative-hashes (arrays) versnelt overzichten regelmatig met een factor 10.

Ook kunnen algoritmen traag zijn, wordt er b.v. vele malen iets opgezocht in een array middels een loop? Door gebruik te maken van associative-arrays kan dit vaak versnelt worden.


Stap 3.1, high-traffic
In het geval van high-traffic is het afhankelijk van de website wat de juiste aanpak is.

Uiteraard is caching een oplossing. Als het een kleine site is, is het misschien verstandig zelf caching toe te passen. Mocht het een grote site zijn kan er gekeken worden naar Cloudflare of andere partijen. Deze bieden ook gelijk DDoS-beveiliging.


Stap 3.2, big-data
Mocht u over veel content beschikken - bijvoorbeeld duizenden vakanties, hotels, nieuws of andere content - dan is het misschien verstandig een losse zoek-module te implementeren. Een database als backend werkt vaak goed totdat een bepaalde hoeveelheid gegevens wordt bereikt of het aantal bezoekers te groot wordt.

Elasticsearch en Apache Solr zijn twee verschillende zoekoplossingen waarmee het mogelijk is tienduizenden records snel doorzoekbaar te maken voor high-traffic sites.


Huur een freelance Php'er

Mocht u opzoek zijn naar vrijblijvend advies? Neem dan contact om te kijken wat in uw situatie het verstandigst is.

 

- Bent u opzoek naar een Php of Java programmeur voor uw website of applicatie? (freelance / detachering)
- Losse tickets, opdrachten, of gehele projecten in de planning?
- Systeembeheer van Linux of Windows Server ?

Dan kom ik graag met u in contact! Meer informatie over mij vindt u hier.
Sitemap | Op alle producten & diensten zijn de algemene voorwaarden van toepassing