Pen^2 (./15) :
il me semble que les scripts php sont plus ou moins tokenisés à la première utilisation
le lancement d'un script PHP passe normalement par deux (trois) étapes :
- chargement du fichier
- compilation en "opcodes"
- exécution de ces opcodes
la compilation se faisant, dans le cas général, à chaque chargement d'un script.
Pour éviter de se re-tapper la compilation à chaque chargement de page, il existe des extensions permettant de cacher (au sens "mettre en cache") les opcodes - on a tendance à les appeler "cache d'opcode"
En libre et/ou gratuit, il y a au moins :
- APC :
http://pecl.php.net/package/APC ; sans doute le cache d'opcode le plus connu, auquel participe Rasmus Lerdorf (fondateur de PHP, dans le temps)
- eAccelerator :
http://eaccelerator.net/- XCache :
http://xcache.lighttpd.net/Jamais testé les deux derniers ; j'utilise fréquemment le premier ; de manière générale, on dit (à la louche) que ça diminue de 50% la charge CPU d'un serveur, quand on l'installe ; j'ai entendu le même genre de chose pour les deux autres.
Par contre, sur un hébergement mutualisé, ça m'étonnerait fortement que ça soit disponible ^^
(ça bouffe pas mal en RAM - sans compter que, du moins pour APC, on peut l'utiliser comme cache de données, plus rapide que de cacher en fichier - selon le type/volumétrie des données)
Je dois pouvoir retrouver dans mes bookmarks une paire de liens intéressants à ce sujet (vers des articles qui datent un peu, mais le principe reste vrai)
-
http://2bits.com/articles/php-op-code-caches-accelerators-a-must-for-a-large-site.html avec quelques graphe qui donnent une idée avant/après activation d'un cache d'opcoce
-
http://2bits.com/articles/benchmarking-apc-vs-eaccelerator-using-drupal.html pour une brève comparaison en perfs eAccelerator vs APC
-
http://www.ipersec.com/index.php/2006/05/30/benchmarking-php-accelerators/