我正在执行这项特定任务,即每个用户每次发送6组8个请求,总共约2000个用户。这是一堆GET请求,用于发送命令。
为了加快发送速度,我构建了4个卷曲多句柄,每个句柄持有8个请求,一个接一个地关闭它们,然后继续下一个用户。很轻微的问题就是我占用了99%的CPU,而我的带宽每秒只吃5kb左右。没有泄漏或任何东西,但是当发送96000个请求时,它会滞后很长时间,在我的双核AMD Phenom上占用大约3个小时。
有什么办法可以加快速度吗?使用file_get_contents()而不是cURL最终会慢50%。但是cURL只使用5 kbps,并且耗尽了我的CPU。
答案 0 :(得分:0)
您是否尝试过使用fopen()代替curl?这也可能会对你发送请求的地方造成负担?在Web服务器完成请求之前,它不会返回。您是否需要返回数据以显示用户,如果没有,您是否可以在后台运行查询?真正的问题是为什么要发送这么多请求,将它们合并为更少的请求会好得多。在此设置中有很多变量可以提高速度。