Web Tip #2 - Benchmark en optimaliseer uw site!
Benchmark en optimaliseer uw site!
Het is heel belangrijk dat uw site altijd vlot reageert. Een bezoeker zal snel afhaken als een site te traag is. Daarom is het belangrijk uw site te benchmarken, en vervolgens te optimaliseren.
Bij de Apache webserver wordt een benchmark programma ab (voor apache2 ab2) geleverd dat een prima indruk kan geven van de prestaties van uw site.
Het commando:
ab -c 10 -n 100 http://www.uwsite.nl/index.php
genereert 100 requests op www.uwsite.nl en doet dit door 10 verbindingen gelijktijdig te starten. De output van dit commando ziet er dan bijvoorbeeld zo uit:
Dit betekent dat in deze simulatie een bezoeker minstens 0.941 seconde en maximaal 1.242 seconde moest wachten.
Na het benchmarken wilt u waarschijnlijk nog het een en ander verbeteren of nazien. Om dit gericht te kunnen doen heeft u meer nodig dan alleen een totaalbenchmark. Gelukkig zijn er PHP functies die helpen met het krijgen van een inzicht in de tijdsbesteding. De functie microtime() geeft 'precision timer' tijd in een enigszins onhandig formaat. We hebben een hulpfunctie nodig om een 'normaal' getal in seconden te krijgen. Dat ziet er dan als volgt uit:
Enkele tips voor het optimaliseren:
- Laat ab2 op een andere computer lopen dan die waar de webserver draait. Anders vertekenen de benchmark gegevens omdat ab2 en apache om de processortijd 'vechten'. Bij het bekijken van een complexe pagina met een browser doet zich hetzelfde probleem voor. Als u echt niet anders kunt draai dan de benchmark tool of de browser met een lage prioriteit (in Linux 'nice' voor het commando zetten).
- PHP is een interpreter. Laat de interpreter geen code lezen die nooit wordt uitgevoerd want dit kost tijd. Lees dus geen overbodige libraries in. Verstop deze desnoods in een conditionele include.
- Gebruik CSS waar mogelijk. Uw webpagina's worden er korter van en de laadtijden verminderen.
- Gebruik de string en array zoek en vervang functies van PHP. Deze zijn vele malen sneller dan zelfgeschreven lusjes.
Veel succes met het optimaliseren van uw site!