如何避免PHP内存耗尽?

3

致命错误:内存大小超出限制,33554432字节已用完(尝试分配136753字节),位于/home/alien/Desktop/1/scanner.php第166行。

以下是PHP代码的第166行:

 $text[$i] =  curl_multi_getcontent ($curl[$i]);

有没有什么方法可以通过清空RAM或其他方式来避免这个问题,抱歉我不是程序员。

4个回答

3

看起来您的服务器配置了32MB的内存分配给PHP。如果不知道更多关于您的应用程序的信息,那听起来是一个合理的数量,但当然有一些应用需要更多。

在您的php.ini文件中,您可以增加内存限制,如下所示:

memory_limit = 64M

请注意,持续增加分配给应用程序的内存通常是更大问题的标志。您可能还想让开发人员检查代码中是否存在未被正确清理的数据。

1

Blah blah,memory_limit。似乎每个人都超越了我的想法。

请注意,默认的PHP内存限制通常为8或16MB,而您正在使用32MB……有人已经为您增加了限制,每次增加后,您将降低整个站点的性能……更高的限制意味着较少的实例、更高的开销和更多可能的错误。

我认为您需要查看是什么在占用所有这些RAM。不要采用陈词滥调,但32MB应该足够任何人使用,如果您只是不断地增加限制,您将把自己推入一个非常丑陋的境地。


0

您可以通过 php.ini 来增加每个 PHP 请求可用的内存量。有关详细信息,请参阅 memory_limit 的文档

但是,请注意那里的警告:这有助于防止糟糕编写的脚本耗尽服务器上所有可用的内存。也许您的第一步应该是去与此代码的开发人员交谈。


0

PHP中没有free_ram()函数。您有几个选项:

  • 增加可用于php的内存限制。在php.ini文件中增加memory_limit
  • unset()变量并祈祷。PHP会根据需要运行其垃圾回收器,很难估计。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接