imagejpeg bellek tükenmesi

1 Cevap php

Ben olsun büyük bir görüntüyü bulmak görüntüler, bir çok ile bisiklet küçük oluşturmak ediyorum:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 13056 bytes)

Şimdi I already know ile bu aşmak için nasıl:

ini_set('memory_limit', '-1');

Ne bilmek istiyorsun belleği tüketmesine neden! Bellek yorucu zaman tam bana gösterecek bazı hata ayıklama araçları var mı? Hafızamı öldürüyor değişkenler / diziler varsa ve özellikle o bana gösterebilir misin?

OR, diğer görüntüleri daha sonra yeniden boyutlandırmak için daha iyi bir yolu vardır:

$thumb=imagecreatetruecolor($newwidth,$newheight); 
$source=imagecreatefromjpeg($imgfile);
imagecopyresampled($thumb,$source,0,0,0,0,$newwidth,$newheight,$width,$height);
imagejpeg($thumb,$destinationfile,85);

?

Thank you very much!

1 Cevap

Is there some debug tools that will show me exactly when memory is exhausting?

Sen memory_get_usage ve memory_get_peak_usage kullanabilirsiniz

And specifically that will show me if there are variables/arrays that are killing my memory?

Bazen değişkenler sadece kaynak sahipleri diğer dillerde oluşturulmuş olabilir veri yapıları bu, özünde, nokta. PHP bu ölçemezsiniz. Sadece suçlu daraltmak için kod şüpheli satırlardan sonra bellek kullanımı işlevlerini kullanın.

(Hosting) gibi bazı kurulumları bellek gereksinimlerini değiştirmek için kısıtlayabilir. Bu kısıtlamalar PHP, web sunucusu ve / veya işletim sistemi seviyesinde uygulanabilir. Sen memory_limit istek phpinfo () arayarak başarılı olmasını sağlamak isteyeceksiniz.