我的服務器上,我有以下錯誤:允許的內存大小已經用盡;但memory_get_peak_usage說,否則
Allowed memory size of 268435456 bytes exhausted
這發生在一個循環(一個foreach一個),當我檢查的循環與內存使用情況
memory_get_peak_usage();
我得到7254128
這是遠遠沒有枯竭的268435456
!
我在多個地方檢查過,內存使用量沒有大幅增加,所以我真的不知道問題出在哪裏!
同樣的腳本工作我的本地計算機上就好了,我設置好的內存限制爲僅16M
我php.ini
文件
這裏是代碼引起的問題,但我認爲它不會是真的有用,它是從question2answer開源。平臺的插件:
foreach ($badges as $slug => $info) {
$badge_name=qa_badge_name($slug);
if(!qa_opt('badge_'.$slug.'_name'))
qa_opt('badge_'.$slug.'_name',$badge_name);
$name = qa_opt('badge_'.$slug.'_name');
}
所以....可能是'qa_opt'或'qa_badge_slug'的一些遞歸失敗? – Wrikken
我把它放在帖子中,但我不認爲它是有用的,它來自插件,所以語法是特定的。而且我知道代碼不乾淨,它不是我的代碼,但我試圖讓它工作! – darkheir
@Wrikken它可能發生在foreach?因爲循環的第一圈表現良好,但第二圈則出現錯誤。 它在我的本地計算機上工作,這添加了一些奇怪! – darkheir