【问题标题】:why is this php fatal error message showing?为什么显示此 php 致命错误消息?
【发布时间】:2013-09-14 19:04:40
【问题描述】:

我是一名 PHP 程序员新手,对位和字节知识不太了解,我想知道为什么会出现此消息:

致命错误:D:\xampp1.8.3\htdocs\hkmschat\default.php中允许的内存大小为134217728字节已用尽(试图分配40字节)第 227

我知道我的网站很大,但它的加载速度足够快,要更改它会很痛苦。

我想知道,当允许的内存大小为 134217728 字节(128 兆字节)时,为什么分配 40 字节太多了。有人可以帮助我了解“允许的内存大小”和“分配的内存”的含义。同样,我对这些了解不多。

我也将php.inimemory_limit 值更改为“256M”,但当时没有用。错误刚刚更改为

致命错误:D:\xampp1.8.3\htdocs\hkmschat\default.php中允许的内存大小为268435456字节已用尽(尝试分配40字节)第 227

有人可以告诉我我缺少什么吗?

提前致谢。

【问题讨论】:

  • 也许你在某个地方有内存泄漏。没有一些代码我们无法知道。
  • 它很长,我不想在这里粘贴整个东西
  • 134217728 B == 128 MB。您可以在此问题上投入更多的 RAM,直到您的 RAM 用完,或者您可以解决您的代码使用 方式 比它可能应该使用的更多内存的事实。无论如何,您在更改 php.ini 后是否重新启动了 Web 服务器?
  • 什么意思?重启不应该好吗?我没有问题。
  • 您可以在 php 文件中的多个位置使用 memory_get_usage 来查看您在哪里使用了所有内存(而不是释放它)。

标签: php memory memory-management out-of-memory


【解决方案1】:

它不只是尝试分配 40 个字节。您已经将 128Megs 的内容加载到内存中,然后它正尝试再加载 40 个字节。这会使您超出限制,并且您会遇到致命错误。至于 php.ini,可以使用多个版本的 php.ini。您应该使用测试页面并使用phpinfo(); 调用来确定您正在修改正确的php.ini。

【讨论】:

  • "我也将 php.ini 的 memory_limit 值更改为 "512M",但当时没有用。"如果我正在解释这个正确性,你是说当你给它更多内存时页面停止工作。这让我相信你的代码中可能有某种循环需要大量内存,也许是无限循环(无穷大很多)。发布一些代码以获得更多帮助。
  • 是的 - 我在该区域有很多循环 - 也许一个是无限的。
  • 是的,这就是问题所在。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多