2010-12-11 48 views
0

我有很奇怪的問題:內存分配的問題 - PHP

Fatal error: Allowed memory size of 134217728 bytes exhausted 
(tried to allocate 21748 bytes) 

我的理解是錯誤但是我跟蹤所有的內存分配腳本及其以上沒有得到:共2883584。

致命錯誤被觸發前的行實際內存使用量爲2883584級別。如上面的錯誤中所述,腳本正試圖分配額外的21748多個,不管怎樣總計不會增加到134217728。

任何想法,爲什麼它那樣?

P.S. 用於內存分配的用法我正在使用:memory_get_usage(true)函數。

+0

檢查任何無限循環。 – Mchl 2010-12-11 19:38:48

+0

另外,值得一提的是我在cli中運行它作爲shell腳本 – Marcin 2010-12-11 19:38:59

+0

沒有無限循環,檢查 – Marcin 2010-12-11 19:39:15

回答

0

好的,所以我想我已經發現了這個問題。事實證明,如果有難以處理GD2分配內存的圖像,但您無法在memory_get_usage和get_peak中看到它,所以相當蹩腳,但...

1

考慮將true傳遞給memory_get_usage,這將返回分配的系統內存的真實數量(而不僅僅是使用emalloc)。運行時可能指的是終止腳本時使用的系統內存,這可能會高得多(例如通過不是emalloc的值)。