3. Oblasti pro zlepšování výkonu
• Návrh aplikace
• Komunikace s klientem
• Webový server a aplikace
• Databáze
• Cachování
• Rozkládání zátěže
4. Návrh aplikace
• Funkčnost aplikace
• Volba vhodných prostředků
• Architektura aplikace
• Výkon versus přehlednost
– Použít OOP? Jak moc dekomponovat?
– Použít framework? Použít ORM?
6. Optimalizace aplikačního kódu
• Kopírování dat vs. referencí
• Kód se provádí v každém průchodu cyklem
• Preferovat vestavěné funkce
• Preferovat preg před ereg
• Ukládání session do souborů je pomalé
• Mikrooptimalizace - ternární operátor a další
7. Komunikace s klientem
• Cachování, HTTP hlavičky
– Last-Modified, If-Modified-Since, Expires
– Etag, If-None-Match
– Cache-Control, Vary
• Klientské zpracování
– Renderování v prohlížeči
– Javascript
– HTML a CSS, Sprites
• Client-side aplikace
8. Databáze
• Volba „databáze“ – MySQL, PostgreSQL, Redis,
Mongo, CouchDB, ElasticSearch
• Uzavírat spojení co nejdříve
• Optimalizace dotazů - EXPLAIN, indexy
• Používat insert s více hodnotami
9. Cachování
• Na mnoha různých místech
– databáze, agregované a předpočítané
hodnoty, výsledky drahých operací a db
dotazů, modelová
data, šablony, fragmenty/bloky, celostránková cache
• Různé nástroje
– filesystém, Memcache/Membase, APC, Redis…
– Varnish, NGINX+Memcache
• Požadavky na architekturu aplikace
• Problém s invalidací