Wat kan je doen om je web-applicatie sneller te laten worden?

Ik heb het hier over grote web-applicaties zoals bijv. Twitter.

Ik had gelezen dat het sneller werd als je de media zoals plaatjes, css, etc, op een ander subdomein of zelfs op een heel ander domein te zetten.

Zijn er nog meer technieken?

Weet jij het antwoord?

/2500

Er zijn een paar dingen die een site langzaam maken, ik zal de twee meest voorkomende noemen: 1. Het opbouwen van een pagina is te zwaar. Wanneer een site van allerlei verschillende bronnen en databases informatie haalt, en hier ingewikkelde berekeningen op los laat dan duurt het langer om die pagina op te bouwen dan met een losse tekst pagina het geval zou zijn. In dit geval kun je met caching veel doen. Maak bijvoorbeeld elke 5 minuten een statische versie van je pagina dan hoeft de server veel minder te doen en wordt een pagina sneller geserveerd. 2. Het tweede stuk waar het fout kan gaan zijn het aantal bestanden dat van een server gehaald wordt. Naast de html pagina worden ook images, javascript, css en dergelijke van een server gehaald. Als dit allemaal van 1 server gehaald wordt gaat alles op die ene server langzamer. Je kunt dan inderdaad bijvoorbeeld een image server gebruiken waarvandaan plaatjes worden opgehaald. De hele site laadt dan voor iedereen sneller, alleen images blijven bijvoorbeeld langzaam. Natuurlijk gaat een en ander sowieso sneller met elke server die je toevoegt.

Er zijn zeker veel oplossingen. Als je gebruik maakt van PHP en/of MySQL is dit zeker op jou van toepassing, anders moet je even kijken: - Het opbouwen van een pagina duurt zo'n 8x langer dan een statische html pagina. - Wanneer je iets wilt berijken kan dit op verschillende manieren, het beste kun je zoeken naar de snelste. - Wanneer je je database normaliseert worden de query's die je uitvoert over het algemeen trager door joins, kijk hoe ver je hier in wilt gaan. Verder: - Gebruik zo weinig mogelijk javascriptblokken. - Maak gebruik van css sprites. - Gebruik geen afbeeldingen voor effen oppervlakken. En zo zijn er nog veel meer andere technieken, maar die zou ik alleen kunnen noemen met de site er naast.

Er zijn veel algemene oplossing, meer servers met een loadbalancer neerzetten die naast elkaar om de beurt requests verwerken (meer ijzer). De datbase indexeren (en niet denormaliseren). Meer cachen. Meer geheugen in het algemeen, hoe meer geheugen hoe minder er op schijf hoeft te worden opgeslagen. Vermijd services als adsense, en clickplaatjes, mijn ervaring is dat die vaak veel wachttijd genereren. Maak meer gebruik van Ajax: ververs niet een hele pagina, maar een klein stukje van de pagina wat daadwerkelijk ververst moet worden, hiervoor dien je wel degelijk javascript te gebruiken. Javascript kun je trouwens in het algemeen wel slim inzetten om je site sneller te maken. Algemene term om iets sneller te maken heet profiling. Voor webpagina's kun je bijvoorbeeld met een tool als firebug (een extensie op firefox) bekijken hoe lang het duurt voordat plaatjes, stukken text, javascript files over de lijn zijn, en hoe lang het duurt voordat je javascript is uitgevoerd. Je moet dan het eerst gaan kijken naar de zaken die veel tijd kosten of die heel vaak voorkomen. Kun je de tijd verminderen (bijvoorbeeld minder grote plaatjes, comprimeren van data) of kun je het aantal keer dat iets wordt uitgevoerd aanpassen. Genoeg mogelijkheden dus, en als je hier erg goed in bent kun je er ook flink mee verdienen.

Bronnen:
http://getfirebug.com/javascript

Stel zelf een vraag

Ben je op zoek naar het antwoord op die ene vraag die je misschien al tijden achtervolgt?

/100