【发布时间】:2012-04-17 02:19:01
【问题描述】:
我必须在 PHP CLI 上使用 Imagick 渲染一些东西。 我注意到每隔 3-5 天服务器内存就会满,所以我什至无法通过 ssh 或 ftp 连接。
使用 memory_get_usage() 我将内存泄漏减少到脚本的 imagick 部分。 脚本看起来像这样:
$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);
我销毁图像引用,并取消设置 imagick 和 imagickDraw 对象,但脚本不会释放任何内存。 setFillColor() 方法占用内存最多
我可以做其他事情来释放 imageick 使用的空间吗?
【问题讨论】:
标签: php memory-leaks imagick