【问题标题】:Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 65488 bytes)致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 65488 字节)
【发布时间】:2014-09-27 12:12:37
【问题描述】:

我目前正忙于我的新 CMS。我可以继续测试我的 TPL 和分页系统。现在,唯一的事情是,当我转到 http://localhost/ 时,我收到了这个错误:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 65488 bytes) in C:\xampp\htdocs\application\classes\class.functions.php on line 162

所以通常情况下,我会转到Class.functions.php 的第 162 行,看看我是否处于循环中或其他任何情况,弄清楚那里到底发生了什么并再次测试它。现在,有趣的是,我的class.functions.php 只包含 92 行。 :')

有没有人有这方面的经验?

谢谢,

韦斯利。

【问题讨论】:

  • 一定是某个地方的无限循环。
  • @Utkanos 我已经知道了,唯一的问题是,如何找到它...
  • 在黑暗中拍摄,但请尝试查看第 81 行。您的行尾可能搞砸了,PHP 计算错误。
  • @NiettheDarkAbsol 不,它完全干净......
  • 你有一个内存泄漏(很抱歉声明很明显)。它可能与Class.functions.php 无关,但这就是PHP 解释器崩溃的地方。如果你真的很绝望,试试二进制搜索(有点粗略):注释掉你首页的一半代码,看看它是否仍然爆炸(显然页面不会按照你的意愿呈现)。如果它确实死了,翻转注释行以确认。如果不是,则假设这些行是无辜的。继续将 cmets 切成两半,以便找到正在熔化的钻头。

标签: php


【解决方案1】:

我不建议你使用它,但尝试这样做:

ini_set("memory_limit","-1");

这意味着没有内存限制。

【讨论】:

  • 老兄,这东西正在吃掉所有可用的内存。允许 PHP 超出其本地限制将需要更长的时间;但最终只是简单地杀死提供 Web 服务的应用程序(apache nginx..)并可能杀死整个服务器。这不是一个好主意。
  • 我告诉过你我不建议你在实时服务器上这样做。但是在本地尝试一下,看看脚本会吃多少内存,结束了吗?您也可以发布代码以查看更多详细信息。
猜你喜欢
  • 2020-04-10
  • 2014-03-07
  • 2014-02-07
  • 2020-07-13
  • 1970-01-01
  • 2020-09-06
  • 2019-06-30
  • 1970-01-01
相关资源
最近更新 更多