Retours d'expérience sur les caches d'opcode (php5)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Retours d'expérience sur les caches d'opcode (php5)

par Calimero » 22 nov. 2007, 09:20

A ce stade je n'ai que des soupçons. Mon bug ressemble à ça : http://developer.jelix.org/ticket/189

Il s'agit de variables non initialisées ou de dépendances cassées dans mon site, sur des pages pourtant parfaitement sûres (dernier message d'erreur reçu en production : "propel database identifiers are not properly set" ou quelquechose du genre). Le bug apparaît de manière aléatoire (jamais deux fois de suite), se manifeste à chaque fois d'une façon différente et est impossible à reproduire. Il semble lié à la manière dont symfony met en cache (.php) la plupart des fichiers de configuration. Et surtout, il n'arrive qu'en production (avec APC donc).

EDIT : Une version affectée : PHP 5.2.1 / APC 3.0.15

Re: Retours d'expérience sur les caches d'opcode (php5)

par Hubert Roksor » 21 nov. 2007, 23:02

bugs aléatoires, sévères et non imputables au développement
Quels types de bugs sur quelles versions de PHP/APC ? Si un bug existe dans la dernière APC je suis sûr que ses développeurs s'empresseront de le corriger.

par momox » 21 nov. 2007, 17:39

Ahhhhh Ok :D :D
C'est vrai que c'est pas une mauvaise idée ^^

par zeus » 21 nov. 2007, 17:38

non, pas du tout.

PHP est un langage interpreté, c'est à dire que, à chaque fois que tu exécutes un code, l'interpréteur PHP lit la source PHP, la valide, génère un opcode (une source binaire) qui est exécutée. Et à chaque exécution, c'est la même chose.
Dans cette manière de faire, un maximum de temps d'exécution est dépensé lors que la lecture, de la validation du code et de la génération de l'opcode

Un cache d'opcode est un système qui, à l'appel d'un script, regarde s'il existe l'opcode du script appelé, vérifie que cet opcode est plus récent que la date de dernière modification du script et utilise directement l'opcode en court-circuitant les phases d'avant.

par momox » 21 nov. 2007, 17:23

Interressant ;)
Donc en clair, un cache OpCode ne prend que la partie du code qui sera utilisée, évitant a l'analyseur php de devoir traiter toute la page non ?
@+

par Calimero » 21 nov. 2007, 16:37

momox, voici un peu de lecture pour toi.

Pour faire simple, un système de cache d'opcode est un plugin pour le Zend Engine (le "coeur" du langage php) qui permet d'optimiser automatiquement tes scripts à l'éxécution. Il arrive à faire sauter à php quelques étapes (notamment l'étape de compilation du script) et à en optimiser d'autres à la volée, ce qui accélère globalement ton site (dans mon cas, ça accélère par un facteur 3 environ sur les pages les plus lourdes en traitement, ce qui est extrêmement intéressant).

par Sékiltoyai » 21 nov. 2007, 15:47

par momox » 21 nov. 2007, 15:06

Qu'est ce qu'un cache d'opcode ? :?
Merci d'avance :)

Retours d'expérience sur les caches d'opcode (php5)

par Calimero » 21 nov. 2007, 11:29

Bonjour,

Je suis à la recherche de retours d'expérience sur les systèmes de cache d'opcode (quels sont ceux que vous connaissez, est-ce que vous les utilisez en production sur des sites sensibles, performances relatives de tel ou tel plugin...) pour php5.

Voici le contexte : j'exploite un site sensible (à accès privé) basé sur le framework symfony. Nous utilisons actuellement APC en cache d'opcode et nous sommes très satisfaits du gain de performance obtenu grâce à lui. Cependant, j'envisage de le changer pour un de ses concurrents suite à différents problèmes (bugs aléatoires, sévères et non imputables au développement) rencontrés depuis son installation, une longue recherche m'a amené à penser qu'APC en était la cause.

Je me demande donc ce que vous utilisez comme cache d'opcode, depuis combien de temps, pour quel genre de site (technologie/volumétrie etc) et si vous êtes satisfaits des performances apportées par votre solution (et si en plus vous avez pu comparer avec APC, c'est l'idéal).

Merci :-)