PHP:更快的cURL执行

时间:2011-02-08 20:17:19

标签: php design-patterns curl singleton

我有一个使用cURL来抓取多个网站内容的应用程序。我想以某种方式优化它。是否有可能实现单例设计模式,并以某种方式以一定的间隔为我需要内容的URL提供卷曲 - 这样我只实例化一次?

现在,我设置并销毁每个呼叫的连接。示例代码将受到高度赞赏。

感谢。

3 个答案:

答案 0 :(得分:1)

这对我来说听起来像是不必要的微优化。对于必须通过互联网从一个已经无法控制的资源中获取大量数据的过程,您将节省一小部分微秒。如果您只是想让流程更快地运行,可以尝试并行运行多个下载。

编辑:和/或确保您的卷曲支持压缩内容。

答案 1 :(得分:1)

我想到了许多可能的解决方案。最简单的可能是构建某种缓存机制。将响应存储在磁盘上,并使用它直到它变得陈旧,然后执行新请求以更新缓存。仅这一点就可以大大提高你的表现。实现此目的的另一种方法是使用缓存代理服务器。

另一种选择是简单地创建一个cronjob,wget每隔几分钟获取所需内容并将结果存储在磁盘上。然后只需从您的应用程序访问该内容。这样,您就不必等待请求完成。

答案 2 :(得分:0)

当然,只需使用curl multi让请求并行运行。查看该页面上的示例。

作为旁注:这与单身或设计模式无关。虽然static允许您在Java中的请求之间保持持久的应用程序状态,但这在PHP中是不可能的。

相关问题