Soyons honnêtes, la meilleure desSoyons honnêtes, la meilleure des
performances :performances :
Les fichiers statiquesLes fichiers statiques
Des fois on n'a pas le choix.Des fois on n'a pas le choix.
Imaginez vos intranets, vos outilsImaginez vos intranets, vos outils
web de gestion...web de gestion...
Les performances des sitesLes performances des sites
dynamiques c'est :dynamiques c'est :
une bonne architectureune bonne architecture
systèmesystème
des optimisations front-enddes optimisations front-end
une application optimiséeune application optimisée
......
La performance des sitesLa performance des sites
dynamiques :dynamiques :
Une histoire de cache à tous lesUne histoire de cache à tous les
niveaux !niveaux !
Mysql fournit des métriques :Mysql fournit des métriques :
Slow query logSlow query log
SHOW STATUS;SHOW STATUS;
Le cache des SGBDLe cache des SGBD
MySQL : query cacheMySQL : query cache
MariaDb : subquery cacheMariaDb : subquery cache
......
Mais qui dans certains casMais qui dans certains cas
ralentissent :ralentissent :
Si plus de modifications queSi plus de modifications que
de lecturesde lectures
Si trop de requêtes différentesSi trop de requêtes différentes
Utilisez les requêtes préparées.Utilisez les requêtes préparées.
Certains systèmes de cache desCertains systèmes de cache des
SGBD ne sont pas tolérants auxSGBD ne sont pas tolérants aux
multiples écritures d'une mêmemultiples écritures d'une même
requête.requête.
DoctrineDoctrine
Query cacheQuery cache
Result cacheResult cache
Doctrine_Cache_*Doctrine_Cache_*
......
Ce ne sont que des outils.Ce ne sont que des outils.
À vous de les insérer dans votreÀ vous de les insérer dans votre
application.application.
ProfilingProfiling
2 outils simples d'usage :2 outils simples d'usage :
XdebugXdebug
Zend DebuggerZend Debugger
Votre framework utilise trop deVotre framework utilise trop de
fichiersfichiers
Seul remède : APCSeul remède : APCMettre à jourMettre à jour
Le proxy cache nécessite : Le proxy cache nécessite :
un applicatif qui est pensé pourun applicatif qui est pensé pour
Solution 1 : AjaxSolution 1 : Ajax
FacileFacile
Aucun investissementAucun investissement
matérielmatériel
Mais :Mais :
Perte d'accessibilitéPerte d'accessibilité
Edge Side IncludesEdge Side Includes
Le proxy cache nous apporte uneLe proxy cache nous apporte une
solution : solution :
L'L'Edge Side IncludesEdge Side Includes (ESI). (ESI).
Disponible dans Varnish,Disponible dans Varnish,
prochainement dans Nginx.prochainement dans Nginx.
EtagEtag
Mauvaise idéeMauvaise idée
Surtout si vous avez plus d'unSurtout si vous avez plus d'un
serveurserveur
AttentionAttention
Assurez-vous d'avoir les moyensAssurez-vous d'avoir les moyens
de de vider les cachesvider les caches lorsque c'est lorsque c'est
nécessaire.nécessaire.
Warming phaseWarming phase
Ne Ne jamaisjamais lancer un serveur lancer un serveur sanssans
cachecache ! !
Warming phaseWarming phase
Si pas de serveur de cache : simuler à froid uneSi pas de serveur de cache : simuler à froid unevisite sur toutes les pagesvisite sur toutes les pages
Si serveur de cache : assurez-vous que laSi serveur de cache : assurez-vous que lasynchronisation est finiesynchronisation est finie
Next levelNext level
Ne plus faire de cache->delete();Ne plus faire de cache->delete();
Utilisez plutôt les cache->update();Utilisez plutôt les cache->update();
Avant de conclureAvant de conclure
Créez / utilisez des métriques àCréez / utilisez des métriques à
tous les niveauxtous les niveaux
Pas de généralisationPas de généralisation
Toutes les optimisations deToutes les optimisations de
performance par l'ajout du cacheperformance par l'ajout du cache
ne peuvent être généralisées àne peuvent être généralisées à
vos autres applications.vos autres applications.
Bonnes pratiquesBonnes pratiques
Pas d'optimisation prématurée :Pas d'optimisation prématurée :
c'est contre-productif.c'est contre-productif.
Par contre, développez enPar contre, développez en
préparant le terrain :préparant le terrain :
- factorisation- factorisation
- pas de code spécifique- pas de code spécifique