-
Gestion de la mémoire
J'ai un gros problème.
J'ai deux classe A et B. A et B possédant chacune leurs propres fonctions.
Sur un script PHP j'instancie un objet a de classe A et un objet b de classe B.
Je demande d'afficher la classe de a et il me retourne A. Jusque la tout est normal. A la ligne d'en dessous j'accède à une fonction de l'objet a et comme par miracle j'ai une erreur me disant que l'objet de classe B ne possède pas la fonction...
Pour information, le script instancie une grand nombre d'objet et prend beaucoup de mémoire.De plus cette erreur semble être aléatoire. Elle apparait sur des instances différentes quand je relance le script.
Avez vous une idée du faite du changement de classe ? Est ce que ça pourrait être une erreur de gestion de pointeur de php du au trop grand nombre d'objets instancié ? Y a t'il une parade ?
Merci d'avance.
-
Peux-tu coller ici le code que tu utilise ?
-
salut
pour ma part si tu as une instance pour chaque objet je ne vois pas comment une instance A retour une méthode de l'instance B ou inversement.
Il y a certainement un oubli dans ton explication
cordialement
-
Problème identifié
Après beaucoup de debugage, j'ai pu trouver la cause du problème qui est assez loin de ce que j'ai pu dire.
L'erreur survient après serialisation de mon objet. Lorsque je le deserialise, certains pointeurs ne pointent plus vers les bons objets.
L'objet serialisé est très volumineux et possède des pointeurs récursifs.
Je me suis attaqué à la volumetrie de cet objet et après lui avoir fait perdre quelques Mo, il se serialise correctement et le problème n'apparait plus.
Avez vous quand même une idée sur cette erreur? Y a t il une taille maximum de serialisation ? Un nombre maximum d'objet dans une serialisation ?
En tout cas je vous remercie, pour vos posts.