【发布时间】:2011-03-13 22:21:51
【问题描述】:
(这是一个很常见的错误,但是找不到意思。)
Fatal error: Allowed memory size of x bytes exhausted (tried to allocate y bytes)
我有一些问题:
- 这显然是内存不足错误,但用 Layman 的话来说是什么意思?
- 是否有可能从
x获知一些信息(如服务器的RAM)? -
y呢?有时是两位数。
谢谢。
【问题讨论】:
标签: php
(这是一个很常见的错误,但是找不到意思。)
Fatal error: Allowed memory size of x bytes exhausted (tried to allocate y bytes)
我有一些问题:
x获知一些信息(如服务器的RAM)?y 呢?有时是两位数。谢谢。
【问题讨论】:
标签: php
memory_limit配置选项的值。请注意,这可能与操作系统在错误发生时认为脚本的内存使用情况一致,也可能不一致。x 为您提供 memory_limit 配置选项的值。您还可以假设服务器至少有足够的虚拟内存来处理限制,但仅此而已。y 只是压垮骆驼的最后一根稻草那么大。【讨论】:
y = x - request_size?非常感谢。
y 是失败的内存分配的大小。例如,如果在超过memory_limit(即x)之前还剩下1 个字节,并且程序尝试分配20 个字节,则y 将是20。
x = ini_get('memory_limit');
y = 超过该限制的 php 请求
这里的内存没问题,做一个更好的php脚本或者用ini_set提高memory_limit
不管怎样,你的问题是 dup,一个简单的 google 搜索就可以解决它
【讨论】:
触发此错误是因为 PHP 解释器对其运行的脚本有内存大小限制。 “x”部分是限制,“y”是导致脚本触发错误的分配。要覆盖它,您可以使用类似的东西:
php_value memory_limit xxxM
在您的服务器配置中或
memory_limit = xxxM
在 PHP 配置中或
ini_set('memory_limit', 'xxxM');
在脚本本身中。
【讨论】: