2016-11-11 58 views
0

注意:有很多問題處理「內存不足」錯誤消息,但我沒有看到答案的具體細節「分配」的定義。什麼是在PHP分配錯誤「分配」的具體細節

在任何屬性中,你都必須知道被測量的是什麼。什麼是「分配」具體措施?

根據php.ini設置,我的客戶端的託管軟件包應該有256MB的PHP內存。網絡主機允許高達256MB。

實施例:致命錯誤:內存(分配118489088)(試圖分配64個 字節) /htdocs中/ WWW /可溼性粉劑內容/插件/所有功能於一事件日曆/供應商/ lessphp /lessc.inc.php on line 293

分配是指所有PHP函數的內存,還是隻針對拋出錯誤的特定進程?

+1

PHP是一個單一的過程中,除非你正在與[並行線程]工作(https://github.com/krakjoe/pthreads)(多線程),我強烈懷疑是你的情況。所以'內存不足'意味着它在'php.ini'文件中分配給PHP的內存不足,或者你的web服務器(很可能是apache)使用[LimitRequestBody指令]分配內存集(http://httpd.apache.org /docs/2.4/mod/core.html#limitrequestbody),儘管它默認設置爲「unlimited」。 – icecub

+1

@icecub不僅是'pthreads',而且[pcntl_fork](http://php.net/manual/en/function.pcntl-fork.php)也是如此。 – BVengerov

+0

@BVengerov真的,但是因爲這是一個評論,我將它簡化爲一個例子。 – icecub

回答

0

關於PHP是一個過程的評論是非常有用的找到這個問題的答案。令人困惑的問題是每個新的進程負載應該有自己的內存空間。事實證明,PHP內部有一個內存管理器,可將內存分配給網站上的各個進程。 PHP可用的內存是PHP內存管理器必須使用的數量。

http://php.net/manual/en/internals2.memory.php