php - fatal error : Out of memory (allocated 1134559232) (tried to allocate 32768 bytes) in X:\wamp\www\xxx

标签 php mysql phpmyadmin wampserver

我在个人 PC 的本地主机上使用 WAMP 服务器(32 位)。我有一个大(非常大)的多维数组,它通过读取包含长句子的 CSV 文件(CSV 文件包含 20,000 行信息)来获取其信息。问题是在进行一些计算时出现以下错误:

Fatal error: Out of memory (allocated 1134559232) (tried to allocate 32768 bytes) in x:\wamp\www\xxx

我尝试了不同的解决方案,例如增加 upload_max_filesizepost_max_sizemax_file_uploadsmemory_limit 或将其设置为 -1在 php.ini 或我的脚本开头也没有人工作。请帮助我,请不要让我重新设计我的代码或更改 WAMP 的版本,由于某些原因这是不可能的。非常感谢。 :)

最佳答案

终于找到解决办法了。我发现当 PHP 收集垃圾变满时,没有办法释放它。 Unsetgc_collect_cycles() 也无效。唯一的方法是在不同的代码部分使用 Function。在我的例子中,我在 for 循环中有一个大脚本,所以我将所有代码复制到一个函数中,然后在我的循环中调用该函数。每次函数停止时,内存就会释放。您可以通过在函数中添加一次 memory_get_usage() 来测试它,在函数外添加一次以查看差异。

关于php - fatal error : Out of memory (allocated 1134559232) (tried to allocate 32768 bytes) in X:\wamp\www\xxx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050090/

相关文章:

php - 想用一个MySQL表影响多个页面

compiler-errors - php我的管理员无法启动并显示警报消息

mysql - 从另一个表更新值

mysql - phpmyadmin 添加文本到字段

php - 如何使用 PHP 遍历 JSON 数组

javascript - 使用 JavaScript 替换功能,所有字符仅出现一次

mysql - 每个 ID 限制为两个结果

python - 我在 virtualenv 中安装后无法导入 MySQLdb

php - mysqli 查询上的多个命令不起作用?

PHP - Ajax 发布可编辑 HTML 表中的值