PHP çok fazla bellek kullanıyor

3 Cevap php

Yazdığım bir php komut dosyası çalıştırmak çalışırken aşağıdaki hatayı alıyorum:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 56320 bytes) in /home/evergrf2/public_html/ianburris/p/maptile/mapfetcher.php on line 43

Ne beni karıştıran o izin bellek boyutu 33554432 bayt ve komut izin bellek bitkin alanı 56320 bayt ayırmaya çalıştı söylüyor olmasıdır. 56320 33554432 daha az olduğunda bu nasıl mümkün olabilir? Belki bu söylediklerini yanlış yorumlayarak ediyorum ...

3 Cevap

Bu ek 56320 bayt ayırmaya çalışırken bellek bitkinlik neden olduğunu söylüyor (bu yüzden zaten en az 33.498.112 bayt tahsis vardı).

allocation of 56320 pushed you above the limit. Increase your limit in php.ini if needed. to be more clear dont read it as alocating 56320 is more than allowed 33554432. Instead read it as, while allocating 56320, we surpassed the limit of 33554432.

Modifiye: dont artış düzgün debuging ve emin bellek sızıntıları vardır yapmadan.

33554432 bayt büyük değil, hangi 32MB.

Sen ('memory_limit = 32M' okur ve uygun şekilde değiştirmek bir satıra bakın, php.ini içinde) PHP'nin bellek sınırını artırabilir. Ben genellikle kalkınma ve ağır sayı-çatırdayan için 128M kullanın.

Diğer çözüm daha az bellek kullanmak için kod profil ve yeniden yazmak için.