Tengo que renderizar algo con Imagick en PHP CLI. Me he dado cuenta de que cada 3-5 días la memoria del servidor se llena, por lo que ni siquiera puedo connet a través de ssh o ftp.PHP Imagick memory leak
con memory_get_usage() Arrastré la fuga de memoria a la parte de imagick del script. el guión es como la siguiente:
$sourceImg = 'source.png';
$destImg = 'dest.png';
$background ='#00ff00';
$im = new Imagick();
$im->pingImage($sourceImg);
$im->readImage($sourceImg);
$draw = new ImagickDraw();
for($i=1;$i<=5;$i++){
$draw->setFillColor($background);
$draw->rectangle(10*$i+5, 10, 10*$i+10, 20);
}
$im->drawImage($draw);
$im->writeImage($destImg);
$im->destroy();
unset($im,$draw);
que destruyen la imagen de referencia, y desarmar el imagick y el objeto ImagickDraw, pero el guión no liberará cualquier memoria. El método setFillColor() toma la mayor cantidad de memoria
¿Puedo hacer algo más para liberar el espacio utilizado por imageick?
image of the memory consumption
ya me rendí en este problema. pero esta solución funciona genial gracias – Slemgrim
¿Alguien sabe algo similar en Java? – krakover
¿Entonces llenará el disco en lugar de la RAM? ¿Qué es este caché? –