Nasıl PHP bellek kullanımı çalışma görüntüleri kaydetme ne zaman?

0 Cevap php

Ben bir dizinde tüm görüntüleri listelemek ve daha sonra yeniden boyutlandırmak ve başka bir dizine kaydetmek bir senaryo üzerinde çalışıyorum.

Benim ortak sunucu, bu iletiyi alırsınız:

Allowed memory size of 67108864 bytes exhausted (tried to allocate 600 bytes) in...

Soru: PHP (), neden bu görüntüleri kaydedebilirsiniz while döngüsü bellek sınırı çıkmak image_destroy kullanarak her görüntü oluşturulduktan sonra belleği serbest olur?

-

Kod sadece görüntüleri kaydetmek, daha fazla bir şey. Sorun görüntülerin miktarı, sadece bir çok görüntü ile birlikte. Her bir görüntü 300KB ve orta komut durağına daha fazla olması ve kesin bir nokta yoktur. O idam oluyor her zaman, görüntülerin bazı durdurmak.

foreach($images as $image) 
{
    $img = PhpThumbFactory::create($image);
    $img->adaptiveResize(640, 450);
    $img->createWatermark(PATH_TEMPLATE_SITE . 'img/watermark.png');
    $img->save($dirBig . $id . '.jpg','jpg');
}

Bu komut kullanılan class PHPThumb, ve yıkıcı var:

public function __destruct ()
{
    if (is_resource($this->oldImage))
    {
        imagedestroy($this->oldImage);
    }

    if (is_resource($this->workingImage))
    {
        imagedestroy($this->workingImage);
    }
}

Ben Üyeliğiniz aynı sorun diğer komut ile görüntüleri tasarrufu var. Ben sorunu bu sınıf veya komut kullanılan diğer veri türü ile değil düşünüyorum.

0 Cevap