如何在PHP脚本结束释放内存,使我的数据库插入脚本更快的下一个请求


How to free memory at end of PHP script to make my database insertion script faster for the next request?

我有一个PHP脚本,它读取XML文件的内容,然后使用

创建一个对象
$xml = new SimpleXMLElement($file_name, 0, TRUE);

然后将对象转换为可操作的数组,循环遍历数组并将数据保存到数据库中。我注意到,当我反复使用这个脚本时,即使XML文件大小大致相同,脚本花费的时间也越来越长。

我需要释放一些内存,或者有什么好的做法,我可以做当我已经达到内存密集型脚本的结束?

首先要检查的是数据库结构。可能需要在数据库表中删除/添加一些索引。它可能是由于数据库变慢导致程序变慢,从而暴露了数据库中的弱点。

你需要度量你的脚本。回显数据库查询前后的时间。检查单独和总共花费了多少时间,以及在包含查询的行上花费了多少时间。

因此,在脚本的开头和结尾,以及查询行之前和之后,执行:

echo microtime(), "<br />'n";

如果这不是问题(这实际上会让我感到惊讶),那么您可以检查您是否可能存储了太多的数据(例如)会话或其他。