为什么php脚本的顺序运行速度比单独的部分慢?

时间:2013-08-26 00:49:47

标签: php performance apc web-crawler curl-multi

我遇到了一个奇怪的问题,并希望有人可以帮助我。我在PHP中编写了一个multiCurl蜘蛛,可以从网站上删除关键字,而且我遇到了一个奇怪的性能问题。

当我运行蜘蛛刮去一个站点的前几个级别时,它需要大约2分钟才能完成,这对我来说并不是一个大问题。奇怪的是,当我尝试在同一个脚本中运行一个又一个蜘蛛时,由于某种原因,运行时会出现问题。例如,当我希望它在7个站点上顺序运行时,我希望它需要14分钟(每个站点2分钟),但它需要花费超过45分钟才能运行。我已经分别对每个站点进行了测试,实际上它们的平均时间是2分钟或更低,但是按顺序运行需要将近一个小时。

我认为这可能与内存问题有关,所以我在脚本运行时实现了APC缓存来存储关键字数据。问题是,当我看到我的任务管理器(我在Windows 7上运行XAMPP)时,Apache服务器似乎没有比CPU的46K / 23%高得多,而且我的compy上的其他所有东西都运行得很好

我仔细观察并确保所有合适的处理程序尽快关闭,大变量未被设置/缓存,但我仍然在摸索为什么它比预期花费的时间长3倍一个接一个地运行一个站点。我打算尝试使用pcntl分叉蜘蛛分离进程(我将尝试安装Linux的拇指驱动器),但我想知道是否有人可能有任何想法可能给我的应用性能受到打击。谢谢!

0 个答案:

没有答案