我运行一个系统需要更新存储在数据库中的数据的各种XML文件。该脚本通过服务器端php文件运行,该文件由守护程序监视,以便执行,完成释放资源,然后重新启动。需要PHP超快速xml更新
我在脚本中有一些基准测试,当我需要更新100个xml文件时,需要大约15秒才能完成。一个典型的xml文件是在6kb左右 - 我使用php的dom创建xml,并使用dom-> save进行编写。数据库是完全规范化的,并且正确的索引已到位,我需要执行的3个查询获得必要的数据,我需要更新xml只需要大约0.05秒。因此,瓶颈似乎是通过dom实际创建xml并写入文件本身。
有没有任何想法,我真的可以加快这个过程?我已经考虑过使用crc检查来查看xml是否需要重写,但是这仍然会要求我读取我将要更新的xml文件,并且此刻我不这样做,所以肯定它同样糟糕只是将一个新文件保存在旧文件的顶部?此外,我不认为它有可能编辑XML的某些部分,因为结构不是统一的,节点的顺序可能会更改,取决于更新后哪些数据不为空。
真的很感谢你对此的看法!
你完全重建每个100个文件吗?你应该链接到几个示例文件,以便人们可以了解工作量。对于只有100个文件来说,15s似乎有点太过分了,但由于我们不知道它运行在哪种服务器上,所以很难说清楚。尝试使用XDebug + WinCacheGrind/KCachegrind分析代码。 –
我同意。看起来这可能是一个简单的preg_replace可行的,但真的有nei。 – cwallenpoole