Page 1 sur 1

Unset ou imagedestroy

Posté : 31 mai 2008, 18:42
par lux
Hello tout le monde.

Question bête, unset ou imagedestroy, pour libérer de la mémoire dans une boucle qui utilise imagecreatefromjpeg et autres joyeusetés ?

J'ai lu par la quelquepart dans les commentaires :
p.s. another thing i noticed too is that unset() makes more memory available than imagedestroy()
P.S. un autre truc que j'ai remarqué est que unset() libère plus de mémoire que imagedestroy()
Un avis la dessus ?

Pour l'instant je préfère unset, car on peut passer plusieurs valeurs, ça ne fait qu'une seule ligne :
unset($array,$width,$height,$image_p,$image);
)

Posté : 31 mai 2008, 19:57
par Sékiltoyai
Essaye les 2 à la suite…

Posté : 31 mai 2008, 20:14
par lux
Je peux faire un imagedestroy avant le unset et pas inversement. Normal si je fais un unset je bazarde la variable.

Donc je fais quoi, les 2 ? Car pourquoi alors avoir fait 2 fonctions qui font quasiment la même chose. Un truc m'échappe.

Sur la page du manuel d'imagedestroy quelqu'un à dit :
Reusing an image variable does NOT clear the old data out of memory! You must use imagedestroy() to clear the data out. (I don't know if unset() works as well).
Reutiliser une variabel d'image ne vide pas la mémoir des données ! Il faut utiliser imagedestroy() pour effacer ces données (Je ne sais pas si unset() le fait aussi).
.

Donc ... :?:

Posté : 31 mai 2008, 22:15
par Sékiltoyai
Je te dis, utilise les deux, tu seras certain d'avoir libéré toute la mémoire…

Posté : 31 mai 2008, 22:18
par lux
Je te dis, utilise les deux, tu seras certain d'avoir libéré toute la mémoire…
D'accord je te crois sur parole 8-)

Merci :wink:

Posté : 01 juin 2008, 00:03
par AB
Ou sinon si tu veux avoir le fin mot de l'histoire, tu fais un bench mémoire, en utilisant alternativement ces fonctions, puis conjointement.
Cela dit cela arrive parfois que pour pas se casser la tête ou répondre à tous les environnements on utilise deux fonctions qui "apparemment" auront le même résultat. Et comme un unset() sur une variable inexistante ne produit pas d'erreur, tu peux l'utiliser sans restriction pour être sûr.

Posté : 01 juin 2008, 09:19
par lux
Ok merci beaucoup pour ces quelques éclaircissements 8-)