1

我遇到了一个奇怪的问题,希望有人可以帮助我。我用 PHP 编写了一个 multiCurl 蜘蛛,它可以从网站上刮掉关键词,但我遇到了一个奇怪的性能问题。

当我运行蜘蛛来抓取网站的前几级时,大约需要 2 分钟才能完成,这对我来说不是什么大问题。奇怪的是,当我尝试在同一个脚本中一个接一个地运行一个蜘蛛时,运行时由于某种原因而膨胀。例如,当我希望它在 7 个站点上按顺序运行时,我希望它需要 14 分钟(每个站点 2 分钟),但运行时间却超过 45 分钟。我已经分别测试了每个站点,实际上它们平均每个站点都在 2 分钟或以下,但是按顺序运行时需要将近一个小时。

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

我仔细查看并确保尽快关闭所有适当的处理程序,未设置/缓存大变量,但我仍然在摸索为什么它的运行时间比预期的长 3 倍网站接踵而至。我即将尝试使用 pcntl 将蜘蛛分叉以分离进程(我将尝试安装 linux 的拇指驱动器),但我想知道是否有人可能对可能给我的东西有任何想法应用性能受到影响。谢谢!

4

0 回答 0