代码之家  ›  专栏  ›  技术社区  ›  Nathan Long

PHP CLI脚本如何确定其内存限制?

  •  4
  • Nathan Long  · 技术社区  · 14 年前

    php.ini 以内联方式 ini_set('memory_limit','5120M') 脚本文件中的声明。

    如果我在脚本顶部添加以下行:

    phpinfo();
    exit();
    

    ... 它声称它的内存限制是5120M,正如我指定的。

    但剧本还是出错了,说

    Fatal error: Allowed memory size of 1073741824 bytes exhausted
    

    ... 是1GB,不是我说的5GB。

    脚本是否需要在其他地方确定其内存限制?这是在FedoraLinux中运行的。

    (是的,最终的解决方案可能是重写脚本以提高效率,但我并不是一开始就写的,所以在我诉诸于此之前,我只想投入一些资源,看看这是否有效。)

    1 回复  |  直到 14 年前
        1
  •  5
  •   Sjoerd    14 年前

    heap limit属性是一个size\u t,在32位机器上为32位。如果以字节为单位,则将内存限制限制为4 GB。您可以尝试在64位机器上使用64位PHP运行它。

    编辑:已确认,堆->limit是一个大小(unsigned int),单位为字节。内存限制为-1将设置堆->限制为4GB,并不像文档所暗示的那样禁用它。将其设置为5GB将使其环绕为1GB。