Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP内存是否限制预先分配给PHP的内存_Php_Ubuntu_Nginx_Memory Limit - Fatal编程技术网

PHP内存是否限制预先分配给PHP的内存

PHP内存是否限制预先分配给PHP的内存,php,ubuntu,nginx,memory-limit,Php,Ubuntu,Nginx,Memory Limit,我们网站上的一些页面达到了PHP内存限制,目前设置为128MB。当我们请求将内存限制提高到256MB时,托管公司的工程师告诉我们: 在我们的服务器上,“平均请求需要不到64MB的RAM” 及 “将内存限制改为256MB实际上会产生192M的平均内存分配,这在大多数请求中都不会被使用” 内存限制量实际上是预先分配的,并且对于我们的大多数请求来说是192MB,这是正确的吗 谢谢大家! 否。您不能使用内存限制预分配内存 也可以参考这篇文章: 也许他的意思是,全球范围内将限额提高到2.56亿,平均申请量

我们网站上的一些页面达到了PHP内存限制,目前设置为128MB。当我们请求将内存限制提高到256MB时,托管公司的工程师告诉我们:

在我们的服务器上,“平均请求需要不到64MB的RAM”

“将内存限制改为256MB实际上会产生192M的平均内存分配,这在大多数请求中都不会被使用”

内存限制量实际上是预先分配的,并且对于我们的大多数请求来说是192MB,这是正确的吗


谢谢大家!

否。您不能使用内存限制预分配内存

也可以参考这篇文章:

也许他的意思是,全球范围内将限额提高到2.56亿,平均申请量达到1.92亿。这意味着有很多人达到了荒谬的64M下限。

来自:

这将设置脚本使用的最大内存量(以字节为单位) 允许分配。这有助于防止编写错误的脚本 耗尽服务器上的所有可用内存。请注意,没有 内存限制,将此指令设置为-1


根据我的经验,许多网站需要超过1.28亿美元。

不,它不需要。它设置允许脚本分配的最大值。它不会自行分配。使用php
memory\u get\u usage
函数测试它


PHP内存限制的要点是“防止编写糟糕的脚本耗尽服务器上的所有可用内存”,而不是“预先分配内存大小”

例如,它只是一个根据需要强制执行的硬上限,或者另一个词“脚本可能消耗的最大内存量”


REF:

您是否确切知道内存限制增加的原因?这似乎会给我带来危险。好问题,尽管+1内存限制没有更改或增加,但老实说,我们不知道在生产环境中将其设置为128MB,直到收到一些投诉,称某些管理功能无法正常工作。在我们要求将内存限制提高到256MB后,托管公司的工程师刚刚告诉我们上述内容。这是堆还是堆栈?
memory\u limit
选项这是个好问题。我不知道,也找不到解释它的文件。
zend_mm_safe_error(heap, "Allowed memory size of %ld bytes exhausted (tried to allocate %ld bytes)", heap->limit, size);