PHP gevorderde |
|
Om de snelheid van de site te verhogen, moet je eerst weten wat traag is. Is het de database? Is het de verbinding? Is het het script zelf? Of is het php die traag opgestart wordt? Er zijn talloze factoren die de snelheid van je request bepalen.
Veel problemen met trage scripts kunnen voorkomen worden door simpele redeneringen en de neiging te hebben om de 'trage' functies zoal bestandsfuncties, database, verbindingen met andere servers te vermijden en de complexiteit van de code te vermijden (complexe lussen, onnodige handelingen om bepaalde data te verkrijgen waar php zelf functies voor heeft, enz...). Enkele extra lussen in ruil voor overzichtelijkere code kan echter in veel gevallen geen kwaad (in geval we aan overoptimalisatie beginnen).
Data die traag kunnen verlopen en regelmatig nodig hou je best bij in caches, waar mogelijk. Afhankelijk van de keuze tussen een eenvoudige setup en een volledige cache-georiënteerde setup moet je zelf bepalen, maar houd de boel simpel.
Als je code wil testen, kan je (om maar 1 ding te noemen) de profiler van xdebug gebruiken. De profiler van xdebug is in staat om een volledige dump te maken van elke lijn code die uitgevoerd wordt, en dit resultaat te dumpen in een bestand die je bijvoorbeeld met webgrind kan bekijken. Let op dat deze bestanden groot zijn, dus zorg ervoor dat xdebug juist ingesteld is en dat je niet te veel requests maakt (in geval je krap zit met schijfruimte).
Eenmaal je je dumps hebt, kijk dan vooral naar de functies die het langst uitgevoerd worden. Zoek uit waarom het zo lang uitgevoerd word en of er geen alternatieven of cache-methodes voor zijn indien mogelijk. Vermijd ook het zoeken naar dingen die je script een beetje sneller kunnen maken, zelf probeer ik die dingen in mijn eigen stijlcode te steken (zoals het gebruik van de '-string waar mogelijk), steek niet je tijd in om die fouten achteraf te vinden (ok, verbeteringen tijdens het lezen zie ik nog door de vingers).
Even ter herhaling. Is het wel je script of php die traag is? En gebruik tot slot de laatste versie van php, want elke php release is sneller en bevat vaak minder bugs. Als je script werkt onder php 5.3, gebruik deze ook waar mogelijk (ik ga vanuit dat de scripts in php 5.2 geschreven zijn). Lukt dit niet? Gebruik dan php 5.2.16, de laatste php release van php 5.2.
Offtopic: Ja, php 5.2 heeft recent nog zijn stempel "end of life" gekregen (nog een reden om voor php 5.3 te gaan). |