Sida 1 av 1

Optimering

Postat: 11 okt 2009 08:44
av n3r0x
Vilka åtgärder utför ni för optimering av era websiter?

Personligen har jag dragit in endel mindre knep jag kör för att minska ner bandbredd då det är något som kostar mycket på vissa co-location medans server är en engångsavgift.

För bandbredd:
  • Gzip av all output från PHP filerna (Fördel: fick ner en mindre sida från 6.1kb till 2.4 med detta. Nackdel: drar CPU och tar lite tid.. tog 0.02s extra)
  • Gzip av alla scriptfiler så som .css och .js m.m (Löste detta med mod_rewrite och en phpfil)
  • Sätter cache på bilder så att alla webproxies sammt ISPs proxies kan lägga cache på bilderna
Optimering jag brukar få göra i kod när jag tar över någon annans projekt:
  • Bryta ut variable ur strängar. (variabler som inte är utbrutna kräver fler cpu läsningar)
  • "LIMIT 1" i SQL queries när man bara ska ha 1 rad (helt sjukt hur mänga som glömmer / inte vet om detta)
  • Fixa cache på saker som en FAQ eller Nyheter som uppdateras sällan (många kör allt genom databasen hela tiden)
Sen för servern:
  • Xcache eller nån annan OPcode cacher till PHP filer (mindre disk läsningar)
Ett annat vanligt fel jag ser är att folk skapar nya funktioner för varje ny liten grej i koden. Visst är bra att segmentera men skulle bli snabbare om man inte hoppade mellan stycken i kodfilerna då även detta slösar på processor kraft. Varje hopp (jmp) är en cpu åtgärd extra.

Re: Optimering

Postat: 10 nov 2011 13:20
av aeeew
Min åsikt är att den viktigaste faktorn i att skriva snabb och stabil kod är att man tänker efter lite.

När jag skall skriva "seriös" kod, så brukar jag ta fram papper och penna och sammanfatta vad jag vill få gjort, vad jag behöver för att göra det och planera hur jag skall göra det. Detta gör inte bara att man får en strukturerad och lättläst kod, men väldigt ofta en mycket snabbare sådan.

Sen har jag lite småknep i bakhuvudet när jag skriver, exempelvis:

Ska jag bara skriva plaintext, använd:

Kod: Markera allt

echo 'hej'; //här letar inte php efter variabler
inte:

Kod: Markera allt

echo "hej "; //här letar php efter variabler
I en loop:

Kod: Markera allt

for($i=0;$i<sizeof($var);$i++){
 //i denna loopen tvingar vi php att köra sizeof-funktionen varje gång loopen startar om
}
gör istället:

Kod: Markera allt

$len = sizeof($var);
for($i=0;$i<$len;$i++) {
.....

Sedan finns det en massa mer, men att se till att man inte hämtar onödig data från databasen och liknande är en väldigt bra början :)


Btw, en väldigt intressant artikel om att optimera php finns här: http://phplens.com/lens/php-book/optimi ... ng-php.php

Gillar den starkt, den ser utanför kod-optimering helheten i optimering.