2009-11-10 110 views
3

致命錯誤:用盡33554432個字節允許存儲器大小(試圖分配136753個字節)/home/alien/Desktop/1/scanner.php線166如何避免PHP內存耗盡?

這是166線PHP代碼的:

$text[$i] = curl_multi_getcontent ($curl[$i]); 

在這裏任何方式清空RAM或東西來解決這個問題,對不起,我不是一個程序員

回答

3

它看起來像你的服務器配置了32MB的內存分配給PHP。不知道更多關於你的應用程序,這聽起來像一個合理的數量,但肯定有需要更多的應用程序。

在你php.ini文件,你可以增加內存的限制,就像這樣:

memory_limit = 64M 

注意持續增加分配給應用程序的內存量往往是一個更大的問題的跡象。您可能還希望開發人員查看代碼中是否有任何未正確清理的數據。

0

您可以通過php.ini增加可爲每個單獨的PHP請求的內存量。詳情請參閱documentation of memory_limit

但是,請注意那裏的警告:這有助於防止在服務器上耗盡所有可用內存的編寫不當的腳本。也許你的第一步應該是去和這個代碼的開發者交談。

0

PHP中沒有free_ram()函數。你做了幾個選擇:

  • 增加可用於php的內存限制。在你的php.ini文件中增加memory_limit
  • unset()變量並且交叉你的手指。 PHP認爲合適並運行它的垃圾回收器很難衡量。
1

Blah blah,memory_limit。似乎每個人都打敗了我。

但是請注意,php的默認內存限制通常爲8或16mb,而您使用的是32 ...有人已經採取了增加限制的步驟,並且每增加一次,您正在降低網站的總體性能...更高的限制意味着更少的實例,更高的開銷和更多可能的錯誤。

我想你需要看看它是吃什麼這個公羊。不要採取陳詞濫調,但任何人都應該足夠32mb,如果你只是繼續增加限制,你會把自己描繪成一個非常醜陋的角落。