Objet vide = mémoire ?? WTF??? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Objet vide = mémoire ?? WTF??? (/showthread.php?tid=5778) Pages :
1
2
|
Objet vide = mémoire ?? WTF??? - Wells - 28-10-2011 Bonjour à tous. J'ai une grosse classe "Planete" avec beaucoup d'attribut et de méthode dedans. Cependant, le constructeur ne fait rien, j'instensi donc un objet soit dit en vide. Seulement voila il y a un hic avec la mémoire; Voici le code : Code : echo '<br />Mémoire aprés recup données: '.round((memory_get_usage(FALSE)/1048576),2).' Mo'; qui donne: Citation :Mémoire aprés recup données: 3.13 Mo Heu c'est quoi la blague la?? Mon unset il sert à rien? Pk un objet vide prend il autant de place en mémoire de base? Nb: le garbage collecter de PHP5 est activé dans ce test RE: Objet vide = mémoire ?? WTF??? - niahoo - 28-10-2011 et ça ça donne quoi ? echo 'Mémoire aprés recup données: ' . round((memory_get_usage(FALSE) / 1048576), 2) . ' Mo'; $LISTE_SYSTEME = new WSysteme; echo 'Mémoire aprés new ' . round((memory_get_usage(FALSE) / 1048576), 2) . ' Mo'; unset($LISTE_SYSTEME); echo 'Mémoire apres Est ce que ton objet envoie $this à quelque chose ? RE: Objet vide = mémoire ?? WTF??? - djidi - 28-10-2011 Ca pourrait t'aider : http://www.php.net/manual/fr/function.unset.php#98692 RE: Objet vide = mémoire ?? WTF??? - Wells - 28-10-2011 Pour etre plus précis voila ou ca peche: Code : $requete = "SELECT Id_Systeme,CoordX,CoordY,iEnv,Nom_Systeme,Climat,PopActu,Id_Joueur en gros j'ai un objet WSysteme principal qui contient un attribut ListeOBJ dans lequel je met en mémoire d'autres objets WSysteme. je créé donc une liste de WSysteme; sauf qu'a chaque new WSysteme(); (vide !!!!!!) il me bouffe 700 ko de mémoire. Forcement ca crash au bout d'un moment. Le soucis n'est donc pas tant le contenu de l'objet mais ca "coquille" qui prend enormement de place. RE: Objet vide = mémoire ?? WTF??? - niahoo - 28-10-2011 attention aux références circulaires Code : $temp = new WSysteme(); RE: Objet vide = mémoire ?? WTF??? - Argorate - 28-10-2011 comme l'a dit djidji, tu as essayé de rajouter: $temp->__destruct(); ? RE: Objet vide = mémoire ?? WTF??? - djidi - 28-10-2011 HS : Rhhhaaaaa mais arrêtez d'écorcher mon pseudo RE: Objet vide = mémoire ?? WTF??? - Argorate - 30-10-2011 Sry, il est vraiment pas facile à lire RE: Objet vide = mémoire ?? WTF??? - Wells - 31-10-2011 Le problème est bien que le fait d'avoir beaucoup de ligne de code dans un objet le rend lourd en mémoire. Je trouve ça ahurissant mais je vois pas d'autres solutions que de faire un objet light, et un autre avec les méthodes, voir couper en MDC.... RE: Objet vide = mémoire ?? WTF??? - niahoo - 31-10-2011 Est-ce que tu as des sources pour ce que tu dis car ça ne me semble pas très logique ! |