Unset ou imagedestroy

lux
Eléphant du PHP | 372 Messages

31 mai 2008, 18:42

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);
)

ViPHP
ViPHP | 5924 Messages

31 mai 2008, 19:57

Essaye les 2 à la suite…

lux
Eléphant du PHP | 372 Messages

31 mai 2008, 20:14

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 ... :?:

ViPHP
ViPHP | 5924 Messages

31 mai 2008, 22:15

Je te dis, utilise les deux, tu seras certain d'avoir libéré toute la mémoire…

lux
Eléphant du PHP | 372 Messages

31 mai 2008, 22:18

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:

ViPHP
AB
ViPHP | 5818 Messages

01 juin 2008, 00:03

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.

lux
Eléphant du PHP | 372 Messages

01 juin 2008, 09:19

Ok merci beaucoup pour ces quelques éclaircissements 8-)