Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Exceso de memoria

Estas en el tema de Exceso de memoria en el foro de PHP en Foros del Web. Buenas compañeros tengo un gran problema con el uso de memoria de php. Estoy usando la libraría PEL para editar la información EXIF de unas ...
  #1 (permalink)  
Antiguo 11/06/2013, 01:43
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 16 años
Puntos: 6
Pregunta Exceso de memoria

Buenas compañeros tengo un gran problema con el uso de memoria de php. Estoy usando la libraría PEL para editar la información EXIF de unas (muchas) imágenes jpeg.

Lo que hago es un bucle para ir pasando la información de una base de datos a las imágenes en si. Entonces a cada iteración del bucle actualizo los metadatos de una de las imágenes.
El problema lo tengo al abrir la imagen e incrustar la información, cada vez que hago esto la memoria usada se dispara y no vuelve a decrecer.

Por ejemplo justo antes de incrustar la información tomamos la memoria como 0. Después la memoria ha crecido a unos 2,7MB. Cuando lo hago en la siguiente imagen vuelve a subir 2,7MB y así hasta que peta.

He probado de hacer unset() o asignar null a las variables que se usan para abrir y guardar la imagen pero solo consigo reducir el uso unos pocos kB.


Como puedo solucionar el problema :S



Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 11/06/2013, 01:55
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 16 años
Puntos: 6
Respuesta: Exceso de memoria

Vale he encontrado la solución, la dejo aquí por si alguien se encuentra con el mismo problema que yo.

El problema viene, según he visto, de un array de Exceptiones que guarda la libraría. Entonces después de abrir cada imagen e incorporar los metadatos lo que hago es un Pel::clearExceptions(); para eliminar el array. Además de hacer un unset a todas las variables intermedias.

La memoria sigue creciendo pero esta vez no llega ni a 1kB por cada imagen.


Sun saludo!

Etiquetas: exif, memoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:39.