PHP CLIでImagickで何かをレンダリングする必要があります。 私は3〜5日ごとにサーバのメモリがいっぱいになるので、sshやftp経由で接続することさえできないことに気付きました。PHP Imagickメモリリーク
with 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の代わりにディスクをいっぱいにしますか?このキャッシュとは何ですか? –