login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sitesnelheid

Offline xSc - 04/04/2006 21:58
Avatar van xScOnbekend Ik zit me eens af te vragen.

Ik heb een site, waarop ong. 10.000 producten komen (met foto!). Het aantal (unieke) bezoekers stijgt. Wellicht komt na afronding van de site zo'n 500 - 1000 bezoekers per dag. Ik probeer de site zo te bouwen, dat de snelheid goed blijft.

- Ik gebruik Smarty. Deze gebruikt ook cache.
- Ik gebruik GZIP om de pagina's gecomprimeerd te versturen.
- Ik gebruik mysql_free_result() om het geheugen vrij te maken na al m'n SELECT-queries.

Wat is nog meer belangrijk om de site zo 'licht mogelijk' te houden?

11 antwoorden

Gesponsorde links
Offline ece - 04/04/2006 22:02
Avatar van ece HTML interesse Kleine foto's.
Geen dubbele bestanden in verschillende mappen.
BV: Pijl.JPG staat in de public_htm zet hem dan ook niet in BV: Downloads.
Offline vinTage - 04/04/2006 22:03
Avatar van vinTage Nieuw lid De foto's alleen tonen als men het wil. (bv "klik voor foto")
De foto's fatsoenlijk comprimeren en niet groter maken dan nodig.

Als ik nog iets verzin edit ik deze post wel 
Offline xSc - 04/04/2006 22:06
Avatar van xSc Onbekend Ja, oke, van de foto's weet ik.

Maar ik bedoel meer eigenlijk qua code: de opbouw, etc.
Offline marten - 04/04/2006 22:10
Avatar van marten Beheerder goede database normalisatie
Offline xSc - 04/04/2006 22:11
Avatar van xSc Onbekend @Marten, ook een goede. M'n normalisatie is aardig goed. Ik wil me alleen gaan verdiepen in indexes.
Offline Martijn1989 - 04/04/2006 22:51
Avatar van Martijn1989 PHP ver gevorderde Het is niet netjes, maar met een Iframe zal je de snelheid ook wel verhogen.

- Geen onnodige Queries
- Selecten wat je nodig hebt
- Kleine Plaatjes
Offline Frisbee - 05/04/2006 00:03
Avatar van Frisbee HTML beginner Layout opbouwen in div's en opmaken met css. Maar ik hoop dat dat al het geval is 
Offline Wijnand - 05/04/2006 09:16
Avatar van Wijnand Moderator
  1. Wat is nog meer belangrijk om de site zo 'licht mogelijk' te houden?

1. De query's optimaliseren (denk ook aan assigned (bij INTEGERS) en indexen)
2. De code geordend neerzetten (dat het dus goed leesbaar is voor de webserver)
3. Geen onnodige functies/codes maken
4. Geen SELECT * FROM tabel maar SELECT `kolom_die_je_nodig_hebt` FROM `tabel`
Offline xSc - 05/04/2006 09:48
Avatar van xSc Onbekend Bedankt!

Ik gebruik divjes. Helaas ook nog wat tables, wat in dit geval makkelijk is. Code is overigens wel valid xHTML + CSS.

Mijn queries maak ik met zorg. Verder selecteer ik altijd alleen de benodigde gegevens. Indexes gebruik ik nog niet. Daar ga ik nog mee aan de slag.
Offline BramBo - 05/04/2006 10:06
Avatar van BramBo JS gevorderde Qua code kan je onwijs veel optimalizeren, het zijn dan ook tijdrovende bezigheden. hieronder heb ik wat simpele technieken die je kan toepassen. Verder zou je kunnen denken aan de Big-O te gebruiken alhoewel dit misschien wat ver gaat binnen PHP is dit in Cpp, Java(etc.) een veel gebruikte techniek om code te optimalizeren. Helaas proef ik vaak in de 'PHP wereld' -> als het werkt, werkt het..
In ieder geval hier wat dingen om code te optimaliseren :

Loops omdraaien
Inplaats van dat je bijvoorbeeld in For loops alles increment gebruik je decrement. Dus :
  1. for ($i = 0; $i < $la; $i++)
  2.  
  3. ## inplaats hiervan gebruik je
  4.  
  5. for ($i = $la; $i > 0; $i--)

De Control statement is hier $la, in het 2de voorbeeld is het echter 0. Een constante value als 0 is altijd sneller in een vergelijking dan een variabel.

Switch ipv If
Als je meer dan 1 elseif gebruikt is het wijselijk om een switch statement te gebruiken. Verder is het beter om Integers te gebruiken in Case statement(Dit geldt in het algemeen voor alle vergelijkingen..) dan een string dus :
  1. switch($i){
  2. case 0:
  3. // iets
  4. break;
  5.  
  6. case 1:
  7. // iets
  8. break;
  9.  
  10. case 2:
  11. // iets
  12. break;
  13. }


Gebruik list()
Wanneer je meerdere variabelen definiëerd in het begin van 'n functie/class/file is het verstandig om list te gebruiken dus :
  1. # niet zo :
  2. $i = 0;
  3. $l = 4;
  4. $s = 'oki';
  5.  
  6. #maar :
  7. list($i, $l, $s)=array(0, 4, 'oki');


Dit principe kent vele toepassingsgebieden in in het algemeen geldt : "1 statement is beter dan 2" dus dit zou ook beter zijn
  1. $i++;
  2. $arr[ $i ];
  3.  
  4. #maar :
  5. $arr[ $i++ ];
etc..

Scopes
Als je gebruik maakt van classes en functies is het belangrijk dat je de juiste scopes gebruik dus definieer geen vars in een class die je alleen in een enkele functie gebruikt. Goed gebruik maken van private, public && protected kan hierin ook een grote rol spelen.

PHP functies
Gebruik php functies in plaats van eigen code dus:
  1. if($arr[0] != 0)
  2. #zal altijd langzamer zijn dan
  3. if(IS_ARRAY($arr))


Er zijn nog vele andere manieren om je code te optimalizeren, misschien dat ik binnenkort hier over wel een tutje ga schrijven en post, maar voor het moment heb ik het vrij druk 

Verder als je plaatjes en files(js/css) en dergelijke gaat optimaliseren moet je het getal 1160(of minder) in gedachten houden dit is namelijk de grote van één TCP/IP packet

(Big O)Links :
http://en.wikipedia.org/wiki/Big_o_notation
http://big_o_notation.iqexpand.com/
Offline xSc - 05/04/2006 10:14 (laatste wijziging 05/04/2006 10:15)
Avatar van xSc Onbekend Brambo, bedankt voor je opmerkingen. Bepaalde gedeelten zijn vrij zwaar. Optimalisatie daarvan kan geen kwaad ;)

Nu geef ik toe dat ik binnen PHP (nog) geen gebruik maak van OOP / Classes.

Bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.306s