Optimering

PHP kan diskuteras här.

Moderatorer: Nille, Minime

n3r0x
Besökare
Poster: 13
Blev medlem: 03 Sep 2009 03:59

Optimering

Posta av n3r0x » 11 Okt 2009 08:44

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.
1, 2.4ghz celeron med 2gb ram - slackware 11.0 = CallOfDuty 4 server
2, 2.66ghz pentium D med 1.5gb - slackware 11.0 = 2x CallOfDuty 4 servrar
3, Zepto laptop core2duo 1.66ghz med 2gb ram - WinXP/FreeBSD 7.1
4, Android G1 phone

Har mer leksaker :)

aeeew
Besökare
Poster: 6
Blev medlem: 10 Nov 2011 12:41

Re: Optimering

Posta av aeeew » 10 Nov 2011 13:20

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: Välj alla

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

Kod: Välj alla

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

Kod: Välj alla

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: Välj alla

$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.

Skriv Svar