1
我已經在php.ini中將我的PHP MAMP服務器設置爲最大「256M」,但突然出現內存錯誤。有兩件事對此很奇怪:內存泄漏故障排除
- 這是一個令人震驚的大量內存供腳本使用。也許我太容易感到震驚,但腳本應該超過256M?我不會這麼想的。
- 儘管我現在將設置更改爲「512M」,但仍然出現內存錯誤,並且它仍然報告在256M範圍內/附近運行(就好像我的設置被忽略)。我確實回收了我認爲足以啓動新設置的Web服務器。
我得到的確切消息是:
[25-Oct-2012 14:27:53] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 222300161 bytes) in [FILE_PATH]/wp-content/themes/lifegadget-pagelines/sections/lg_content/section.php on line 42
[25-Oct-2012 14:27:53] PHP Fatal error: Call to a member function get() on a non-object in [FILE_PATH]/wp-content/object-cache.php on line 52
所以我的問題如下:
- 故障排除。有什麼方法可以解決內存使用問題嗎?
- 比例尺。超過256M限制是一個明顯的問題,或者在某些情況下這是合理的嗎?
- 新天花板。爲什麼我的512M新天花板被忽略?並不是說我很樂意讓它保持在512M,但我原以爲它至少可以讓我恢復正常運行(機器上有16GB的存儲空間,因此有足夠的物理內存)。
你的第一個問題的簡短答案是:(http://stackoverflow.com/questions/849549/finding-cause-of-memory-leaks-in-large-php-stacks。很難回答你的第二個問題沒有上下文的問題,但總有一個適當的情況,更多的內存是可以接受的解決方案(反過來也是如此) –
完全取決於你的腳本試圖做什麼,如果一個簡單的'echo 1 + 1'腳本會很震撼用完了256meg。如果沒有使用數兆字節的內存,將GDGA像素圖像加載到GD中進行處理的腳本會令人震驚。 –
在各個地方使用[memory_get_usage](http://php.net/memory_get_usage)在腳本中可能會使用更多的內存),並直接「回顯」網頁上的值或將它們記錄到文件中。腳本在做什麼?是否可能發佈酸ce代碼?或者,也許它的一個相關部分? – Jocelyn