Vous êtes sur la page 1sur 7

Explication sur la gestion et l'utilisation du cache de Joomla 1.5 ou comment augmenter la vitesse de chargement de votre site Joomla.

Source : the Art of Joomla, Joomla Caching Explained . Traduction franaise par Alpha Design autoris par the Art of Joomla, rvisions par Lliseil.

Joomla trois niveaux de cache qui peuvent tre utiliss pour amliorer la vitesse de tlchargement de votre site Joomla 1.5 (jusqu' un facteur 8 dans des conditions idales).

N'importe quel systme de gestion de contenu (SGC, en anglais CMS) sollicite le serveur web, Joomla n'y fait pas exception. Cependant la plus part des sites internet ont des contenus qui changent peu souvent, pour lesquels ont peu utiliser des techniques de cache afin d'viter de rinventer le fil couper le beurre (ou peut tre le contenu) chaque fois qu'une page est visite. Cet article dcrit les trois niveaux de cache disponible sur un site Joomla 1.5. L'ide derrire le cache est qu'une fois que vous avez sollicit un composant, un module ou mme la construction d'une page complte, il est astucieux d'en faire une copie que l'on rutilisera si possible. Par dfaut Joomla ne cache aucun contenu. Par consquent chaque fois que quelqu'un visite votre page, toutes les calculs raliss pour construire cette page sont refaits encore et encore mme si il n'y a rien changer ce que voit l'internaute. Pour viter cela, Joomla possde trois niveaux de cache : La cache de page Le cache de vue Le cache de module

Le cache de page Pour le cache de page Joomla fait une copie entire de la page la premire fois qu'elle est visite. Si cette page est de nouveau visite, Joomla prends cette copie sauvegarde et l'affiche directement, vitant une grande partie du code et une bonne part des requtes vers la base de donnes qui auraient t ncessaires sa construction. Le cache de page est pris en charge par le Cache Plugin System de Joomla. Pour l'activer, rendez-vous dans l'administration de votre site Joomla et slectionnez Extensions > Gestions des plugins. A partir du menu droulant

Slectionnez un type choisissez le filtre system afin de trouver plus facilement ce plugin (alternativement cherchez "cache" dans le champ Filtre.)

Cliquez sur l'icne dans la colonne Activ pour activer le plugin. Si vous ditez le plugin System-cache vous dcouvrirez qu'il a deux options : Utiliser le cache du navigateur et Dure de vie du cache.

Utiliser le cache du navigateur L'infobulle pour ce paramtre prcise : "Utiliser le cache de navigateur: si actif, utilise le mcanisme stockant des pages dans le navigateur." Si vous choisissez cette option, Joomla enverra un En-tte "304 Not Modified" au navigateur si cette page a dj t mise en cache. En d'autres termes Joomla indique au navigateur que cette page n'a pas change depuis la dernire fois que vous l'avez vue, ce qui conomise une requte au serveur pour obtenit le contenu de cette page dans le cas ou le navigateur ait enregistr une copie locale). Ce n'est vraiment utile que lorsque des internautes vont revisiter des pages dj visites pendant qu'ils parcourent votre site. Dans ce cas, cela peut amliorer le temps de chargement de la page. Si vos visiteurs gnralement ne visite pas plus d'une page durant leur navigation sur votre site, cette option ne prsente pas d'avantage notable.

Dure de vie du cache Il s'agit du temps en minutes, de stockage de la page avant que ne soit faite une actualisation complte. Le choix de cette dure dpend de la frquence de modification du contenu des pages. Si vous avez des actualits arrivant toutes les minutes, vous choisirez une petite dure, si ncessaire jusqu' une minute. Test de performance du cache de page Les rsultats suivant sont bass sur une installation local de Joomla 1.5.14 sur un portable (Macbook Pro 2.1.7 GHz Core Duo 2 avec 2GB de ram, PHP 5.2.6, MySQL 5.4.41). Les rsultats ont t compils en activant le plugin SystemDebug (avec un peu de hacking pour montrer les rsultats du cache en raison d'une bug dans le plugin) SEF Off, Systme cache plugin Off Application afterLoad: 0.000 seconds, 0.24 MB

Application afterInitialise: 0.072 seconds, 3.72 MB Application afterRoute: 0.114 seconds, 5.46 MB

Application afterDispatch: 0.165 seconds, 6.86 MB Application afterRender: 0.667 seconds, 7.98 MB

SEF Off, Systme cache plugin On Application afterLoad: 0.000 seconds, 0.24 MB

Application afterInitialise: 0.077 seconds, 3.79 MB Application afterCache: 0.080 seconds, 3.97 MB

Les amliorations sont notoires avec le cache activ pour afficher, le mme contenu soit 8 fois plus rapidement et en utilisant moiti moins de mmoire. Ce n'est effectivement pas un no-load-test (soit en d'autres termes des conditions idales) de manire dmontrer que la meilleur performance que vous puissiez obtenir en activant le cache. Vous n'obtiendrez pas la mme magnitude d'amlioration sur un serveur de production et probablement encore moins sur un serveur mutualis mais les amliorations peuvent tre quand mme notables (si vos pages sont charges de modules, vous pourriez voire une augmentation plus importante) Choses savoir en utilisant le cache de page Il y a un certain nombre de choses que vous devriez surveiller lorsque vous utilisez le plugin cache de page, notamment : Il ne s'applique pas l'administrateur.

Il ne s'applique qu'aux visiteurs non-logus. Il ne s'applique pas aux formulaires (ce qui est une bonne chose). Il remplace le jeton de scurit avec la valeur correcte (ce qui est une bonne chose). Il ajoute un "profiling mark" appel afterCache (mais cause d'une bug, vous ne le verrez pas). Cela fonctionne pour une URL unique quelque soit le composant, tant donn qu'il stocke une copie de la page aprs l'avoir affiche en fonction de son URL. Le comptage d'articles n'augmentera pas avec le cache on (rendant l'option de de tri par comptage inoprante) Le contenu dynamique bas sur javascript tel que Google Analytics ou Google Adsence fonctionne toujours. Le cache de page ne marche pas si Site > Configuration gnrale > systme Dbogage systme est sur oui. Le pages cachs sont stockes dans le rpertoire /cache/page/. Si vous avez un gros site vous tes invits vrifier la capacit de stockage de votre hbergement. Vider le cache de page Vous avez besoin parfois de vider le cache de page afin que vous puissiez voire les changements rcents faits sur votre site. Pour vider le cache de page rendez-vous dans le menu d'administration et et slectionnez Outils > Nettoyez le cache. Cochez le Groupe Cache nomm "page" puis cliquez sur supprimer en haut droite (Note de Liseil : ou installez la petite extension "Cache Cleaner").

Caches de Vue et caching de module Le cache de Vue et de module sont diffrents du cache de page parce qu'ils se contentent de copier des parties de page. Joomla analysera et "rendra" toujours le template, mais vous amliorez les performances parce que des parties de page peuvent tre affiches trs rapidement. Les caches de Vue et de module se contrlent dans Site > Configuration Gnrale rubrique Paramtres du cache.

Vous pouvez activer le cache et spcifier le temps de cache (en minutes) et le mode de gestion du cache (fichier est gnralement choisit moins que vous n'ayez des logiciels "exotiques" installs sur votre serveur). Le cache de vue Le cache de vue n'est support que par des composants qui le gre de part leur architecture MVC. Le seul composant qui le permette dans Joomla 1.5 est le composant des Articles mais seulement pour les visiteurs non loggs et seulement si vous ne visualisez pas une page prsente en Catgorie Blog ( la raison pour laquelle cette vue ne marche pas m'chappe pour le moment). Plusieurs extensions JXtended extensions supportent le cache de vue. Le cache de vue capture une copie de la sortie du composant avant qu'il ne soit transmis au template pour tre "rendu". Ceci peut tre trs utile si la quantit de travail pour gnrer la page demande est importante en temps processeur (en clair, ce qui fait travailler durement le serveur). Comme le cache de page, le cache de vue est li l'URL. Le cache de module Tous les modules devraient avoir une option de cache, en gnral les Paramtres avancs du module (devraient ) proposent une option de mise en cache (en minutes), pour garder une copie de la sortie du module. Cette option de cache vous permet de choisir entre Paramtres Globaux ou Pas de cache. Ce qui veut dire que vous avez trois combinaisons disponibles : La configuration globale du cache n'est pas active : aucun des modules ne mettra sa sortie en cache. La configuration globale du cache est active : tous les modules utilisant les Paramtres Globaux seront mis en cache.. La configuration globale du cache est active, mais les modules peuvent tre individuellement non cachs en slectionnant Pas de cache. Il est important de noter que le cache de module est diffrent du cache ralis par le plugin System Cache. En fait, ils sont compltement

indpendants l'un de l'autre mis part le fait que le le plugin System Cache priorit sur le cache de module. En d'autres termes, lorsque le plugin System Cache met une page en cache, une copie de la page entire est stocke, y compris les modules . Quand la page est tire du cache, il n'y pas de processus pour vrifier si certains certains modules sont rgls sur pas de cache.

Il y a quelques modules pour lesquels vous devriez choisir de ne pas activer le cache. Le module de menu ne doit gnralement tre mis en cache moins qu'il ne soit paramtr pour ne pas s'tendre (en d'autres mots, il reste tout le temps ouvert). Suivant leur paramtrages, le cache ne devrait pas tre activ pour les modules de menu spars (split menu modules). Si vous l'activez sur un menu dpliant ou un "split menu", il restera bloqu et ennuiera vos visiteurs. Les modules de contenu rotatif, tels que le modules bannires, ne doivent pas non plus tre cachs. Si ils le sont ils afficheront le mme contenu jusqu' ce que le cache expire! Mais il y a un exception, les modules de publicits bass sur du Javascript pour afficher leur contenu (tel que Google Adsence), ne sont pas affects par le cache. Le module de sondage ne doit pas tre mis en cache, sinon vous risqueriez d'avoir un message d' "Invalid Token" quand quelqu'un votera. Le modules de contenu trs dynamique ne devraient pas tre mis en cache ou avec une de dure de vie du cache trs faible (une ou deux minutes) Le cache de module marche que le visiteur soit un "guest" ou logg. Notes pour les Dveloppeurs de Modules Les dveloppeurs de module doivent tre conscients que le cache de module est gr par le moteur de rendu de module dans la class JDocumentRendererModule. Si les paramtres de cache ne sont pas fournis, le module ne pourra pas tre cach mme si c'est activ dans les paramtres de Configuration Gnrale. Pour permetrre un module d'tre mis en cache, vous devez inclure le paramtre suivant dans le fichier XML du module : <param name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module"> <option

value="1">Use global</option> <option value="0">No caching</option> </param>