PHP不释放内存

我的生产环境中的php脚本出现问题。</ p>

我的脚本的目标是读取XML文件,解析它并生成新的XML记录以插入SOLR。
XML包含许多文档,我循环文档。</ p>

自上次以来 释放脚本因内存错误而崩溃。
使用get_memory_usage()记录循环开始时使用的内存,我发现它经常增长。</ p>

我不使用静态 变量,所有变量都在循环中重新分配。 当我读到连接可能导致内存问题时,我在循环后使用数组并内爆。</ p>

实际上我的主要问题是使用的内存在我的测试环境和开发环境中保持稳定 一。 脚本完全相同,配置与(与puppet一起部署)相同。 只有硬件是不同的(不同云上的VM)。
当然输入文件是相同的。</ p>

您是否知道在我的环境中可能导致这种差异的原因是什么? n所有可以帮助接受的建议,真正坚持这个</ p>
</ div>

展开原文

原文

Got a problem with a php script on my production environment.

The aim of my script is to read a XML File, parse it and generate new XML records to insert in SOLR. The XML contains many Documents and I loop on the Documents.

Since the last release the script crashed because of memory errors. I log the memory used at the beginning of the loop with get_memory_usage() and I see that it grows regulary.

I don't use static variables, all variables are reassign in the loop. As I read that concatenation might cause memory problem, I use an array and implode after the loop.

Actually my main problem is that the used memory keep stable on my test environment and on the dev one. The scripts are exactly the sames, configuration is the same to (deployed with puppet). Only the hardware is differend (VM on differents clouds). Of course the input files are the sames to.

Do you have any idea of what can cause this difference between my environments? All suggestions that can help accepted, really stucked on this

douzhang5984
douzhang5984 我看到了这个,但是我在两个部署了puppet的LinuxVM上运行我的脚本。只有物理硬件不同。并且我的两个env之间的行为是根本不同的,一个释放内存迭代循环,另一个从不。
3 年多之前 回复
douling6469
douling6469 我做了一个快速的谷歌,想出了:stackoverflow.com/questions/8223205/...如果你知道服务器正在运行什么硬件,你的内存消耗可能包括在搜索中,看看是否有其他人有类似的问题。
3 年多之前 回复
doumei1955
doumei1955 实际上没有一个功能可以记录所有的内存,看起来内存永远不会释放。你知道哪些系统参数会影响这种行为吗?
3 年多之前 回复
douhu2131
douhu2131 在不了解PHP及其内存处理的情况下,如果您可以随时检查内存使用情况,可以尝试在每行代码之后运行它,并查看代码的哪一部分实际上与您的test/dev环境相比产生垃圾也许得到一些线索。除此之外,如果不知道它的硬件是什么以及它没有什么硬件,可能很难说什么是错误的。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐