PHP CLI에서 Imagick으로 무엇인가를 렌더링해야한다. 나는 3-5 일마다 서버 메모리가 가득 차서 ssh 나 ftp를 통해 연결할 수 없다는 것을 알아 챘다.PHP Imagick memory leak
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에서 사용하는 공간을 확보하려면 다른 작업을 수행 할 수 있습니까?
image of the memory consumption
나는 이미이 문제를 포기했다. 그러나이 솔루션은 훌륭하게 작동합니다. 감사합니다 – Slemgrim
누구든지 Java와 비슷한 것을 알고 있습니까? – krakover
그러면 RAM 대신 디스크를 채우게 될까요? 이 캐시 란 무엇입니까? –