相关疑难解决方法(0)

PHP Imagick内存泄漏

我必须在PHP CLI上用Imagick渲染一些东西.我注意到每3-5天服务器内存已满,所以我甚至无法通过ssh或ftp进行连接.

使用memory_get_usage()我将内存泄漏缩小到脚本的想象部分.脚本看起来像这样:

$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);
Run Code Online (Sandbox Code Playgroud)

我破坏了图像引用,并取消了imagick和imagickDraw对象,但脚本不会释放任何内存.setFillColor()方法占用的内存最多

我可以做些其他事情来释放imageick使用的空间吗?

内存消耗的图像

php memory-leaks imagick

9
推荐指数
2
解决办法
7437
查看次数

标签 统计

imagick ×1

memory-leaks ×1

php ×1