问题描述
我在个人 PC 上的本地主机上使用 WAMP 服务器(32 位).我有一个大(非常大)多维数组,它通过读取包含长句子的 CSV 文件(CSV 文件包含 20,000 行信息)来获取其信息.问题是我在进行一些计算时收到以下错误:
I am using WAMP server(32 bits) on local host on my personal PC. I have a big (very big) multidimensional array which gets its information by reading a CSV file which contains long sentences(the CSV file contains 20,000 row of information). The problem is that I get the following error when it goes through some calculations:
致命错误:内存不足(已分配 1134559232)(尝试分配32768 字节)在 x:wampwwwxxx
我尝试了不同的解决方案,例如增加 upload_max_filesize、post_max_size、max_file_uploads 和 memory_limit 或将其设置为 -1在 php.ini 或我的脚本开头也没有人工作.请帮助我,请不要让我重新构建我的代码或更改 WAMP 的版本,由于某些原因这是不可能的.非常感谢你.:)
I tried different solutions like increasing upload_max_filesize, post_max_size , max_file_uploads and memory_limit or set it to -1 in php.ini or at the beginning of my scripts also, no one works. Please help me, and please do not ask me to re-architect my codes or change the version of WAMP, due to some reasons it is not possible. Thank you very much. :)
推荐答案
我终于找到了解决方案.我发现当PHP收集垃圾越来越满时,没有办法释放它.Unset 和 gc_collect_cycles() 也无效.唯一的方法是在不同的代码段上使用Function.就我而言,我在 for 循环中有一个大脚本,所以我将所有代码复制到一个函数中,并在我的循环中调用该函数.每次函数安静时,内存就会得到释放.您可以通过在函数中添加一次 memory_get_usage() 并在函数外添加一次来测试它以查看差异.
Finally I could find the solution. I found that when the PHP collection garbage is getting full, there is no way to free it. Unset and gc_collect_cycles() also are not effective. The only way is to use Function over different section of codes. In my case, I had a big script in a for loop, so I copied all my codes in a function, and in my loop I call the function. Each time function quiets, memory gets free. You may test it by adding memory_get_usage() once in your function and once out of the function to see the difference.
这篇关于致命错误:X:wampwwwxxx 中的内存不足(已分配 1134559232)(试图分配 32768 字节)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!



大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)