Optimiser l’exécution de code PHP – Cache APC

Le langage PHP est un langage non compilé (tel que le python, le perl ou le script shell), pour qu’il soit interprété, une compilation du code est effectué lors de l’exécution de celui-ci, ce qui peut être lent selon les scripts php que vous possédez. De plus vous noterez que le principe est fastidieux, compiler le code à chaque fois ralentit forcément les choses… En particulier sur les CMS qui utilisent des framework, les scripts PHP font appel à de nombreux autres scripts PHP, augmentant les délais de compilation.

C’est là qu’intervient APC, il met en cache le code “compilé” (qu’on appelle un opcode), ainsi l’interpréteur PHP ne compile pas le code, mais lis directement l’opcode, d’où un gain de temps très important !

Ce module est très simple à installer, choisissez votre méthode (apt, rpm, compilation), et chargez le module dans apache, le tour est joué ! Vous pouvez ensuite vous servir du script “apc.php” fournis pour monitoré votre cache.
A titre d’information, j’ai gagné environ 500ms de temps d’exécution, ce qui n’est pas négligeable. Les pages de mon site AnimesOST, sont maintenant exécutés en 100-200ms au lieu de 700ms et + !

5 replies on “Optimiser l’exécution de code PHP – Cache APC”

  1. Je rafraichie plusieurs fois ma page avant d'installé apc.
    Je varie entre 39 et 43ms.
    J'installe php-apc, je restart apache, et je rafraichie plusieurs fois ma page.
    Je varie entre 54 et 60ms.
    Je désinstalle php-apc, et je suis de nouveau dans les 40ms.
    Donc enfaite sur mon site il me ralenti xD.
    Peut-être parce que mon site met déjà tout en cache.

  2. @BestPig :
    Peut-être ? Sinon il faut attendre un peu avant que le cache soit effectif. Malgré ta mise en cache tu mets pas en cache le code, donc ça ne devrais pas le ralentir. Par contre à chaque fois fois que tu charge une page, APC regarde si le code à été modifié ou pas. Tu peut éventuellement le changer en mettant l’option apc.stat à 0. Mais si tu modifie ton code tu devras recharger apache :/
    Tu peut aussi monitoré le cache, voit si il est bien définit. Exemple :
    http://www.dump-it.fr/apc01png/04742ebebb2e9f40f808b00645965be0.png.html
    http://www.dump-it.fr/apc02png/db5e0932986db26c0bd1ec5878535089.png.html
    Essaye de le mettre, et attends une trentaine de minutes.

Comments are closed.