måndag 17 december 2007

Optimera din PHP-kod för att öka hastigheten

Använd alltid enkelfnuttar när du citerar strängar i PHP. Om du använder dubbelfnuttar så kan du skriva variabler direkt i strängen men samtidigt så tar det längre tid för servern att tolka koden.

Använd inte funktioner inuti en loop. T ex
for ($i = 0; $i < count($array); $i)
Funktionern count() kommer att kallas för varje varv i loopen. Gör en variabel av count($array) istället.

När du ska skriva ut strängar med echo så separera strängarna med kommatecken istället för punkter. OBS! echo är snabbare än print.

require_once(); kräver mer än include();

Använd full sökväg i require() och include() så slipper servern lägga tid på att räkna ut sökvägen.

Vill du kolla minsta längden på en sträng så använd isset() istället för strlen()
if(isset($ort[3])){ echo 'Ortnamnet är längre eller lika med 4 tecken.';}

Stäng din databaskoppling när du är klar med skriptet.

Använd unset() när du använt klart dina variabler, särskilt stora arrayer.

Testa gärna ditt skript efter ändringarna och se skillnaden:

Lägg följande kod i början av din php-fil:
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$begintime = $time;

Lägg följande kod i slutet av din php-fil:
$time = microtime();
$time = explode(" ", $time);
$time = $time[1] + $time[0];
$endtime = $time;
$totaltime = ($endtime - $begintime);
echo 'Servern exekverade sidan på ' .$totaltime. ' sekunder.';

1 kommentar:

Anonym sa...

Bra skrivet.

Men det bör tilläggas att man bör använda sig av logisk kod så gott det går, även om det slöar ner allt en aning.

Man bör anpassa dessa optimeringar till rätt tillfällen. Om det är en mindre sekvens som skall köras bör man använda sig av logisk kod istället för optimerad kod. Skall man använda sig av en mer krävande loop exempelvis, så bör man dock använda sig av det optimerade alternativet för att spara exekveringstid.