(fourni
par )
Après l'accélération de code, dite aussi cache d'opcode,
le cache est la méthode la plus facile pour accélérer un site
web existant : il suffit de sauver le résultat des opérations
les plus gourmandes sur un medium temporaire et rapide. Il
suffira alors d'y lire le contenu à diffuser, au lieu de le
calculer à nouveau. Cet article illustre une approche pratique
sans dépendance externe.
Aussi
souvent que je vois une discussion sur un forum à propos des
performances de PHP, je m'étonne de l'absence de solutions
de cache. Personne ne propose jamais de solutions de cache
pour résoudre un problème de script trop long à exécuter.
Naturellement, l'optimisation est la meilleure solution, mais,
soyons réalistes : les développeurs n'ont jamais le temps
de s'y consacrer le temps nécessaire de manière efficace.
Si un simple cache peut accélérer une application, il faut
s'y attarder : cela vous donnera le temps de vous préoccuper
d'autres problèmes plus importants, ou d'optimiser le code
avec prudence. L'optimisation est un sujet proche de la sorcellerie
: cela peut conduire immédiatement à une catastrophe si elle
est mal menée. Autant mettre le maximum de chances de votre
côté.
Je conçois le cache comme une solution aux problèmes de développeurs,
et non pas à ceux d'un site Web. Laissez-moi expliquer : votre
site peut être lent parce que vos scripts sont longs à exécuter,
ou parce que votre trafic dépasse les capacités du serveur.
Si votre site ralentit lors de pics de trafic, ce que j'appellerai
un problème de site Web, et que vos scripts sont bien optimisés,
alors le cache ne pourra pas résoudre vos problèmes, sauf
peut-être réduire le nombre de sollicitations de la base de
données. Dans ce cas, au contraire, il faudra activer d'autres
options comme les caches d'opcode et les optimisateurs, ou
encore un second serveur, pour répartir la charge sur plusieurs
machines.
D'un autre côté, si vos scripts ne sont pas optimisés, comme
c'est souvent le cas avec les sites Web, le cache peut vous
tendre une main secourable et vous donner le temps de comprendre
ce qui se passe sur votre application, sans avoir sur le dos
toute la direction de la compagnie.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Dans certains cas, vos scripts peuvent être lents sans que
cela soit de votre faute : par exemple, si vos pages dépendent
d'une source d'information externe, comme une agence de publicité,
alors vous ne pourrez pas améliorer les performances, et le
cache sera une solution à étudier.
Avant que je ne me lance plus à fond dans l'article, je voudrais
insister sur le fait qu'il existe des solutions de cache que
vous pouvez utiliser dans vos projets sans avoir à recompiler
PHP. PEAR::Cache et PEAR::Cache_Lite
sont deux excellents exemples. Vous pouvez aussi lire l'article
de Bruno Pedro sur les techniques de cache, qui est paru dans
Direction|PHP au moins de mars 2004. Bruno couvre différentes
méthodes de cache que je ne vous présente pas dans cet article,
et il fait une utilisation intensive des classes PEAR.
|