curl,fsockopen,file_get_contents,system实测

因为一个项目的采集需要,所以做一个比较,一开始是使用file_get_contents来抓去,后来为了方便改用了Snoopy库,没事看了一下Snoopy,是风转fsocket实现的,file_get_contents其实也是,后来为了效率问题改用了curl来抓去,但是还会经常性的拖垮服务器。

后来想,如果改用system调用linux的curl命令来执行会不会稳定性高呢?

本质上php的curl库和系统的curl命令都是对libcurl库的封装。php直接调用它的curl库,比起system调用curl命令,可以少开启进程,资源消耗少,性能会更高。这个在下面的对比上就能看到。至于稳定性。调用system会开启进行进行抓去,个人预测会比较高,这个还需更待验证。

system

curl

file_get_contents

fsocket


0.804 seconds

2.496 seconds

22.264 seconds

5.278 seconds

11.535 seconds

3.514 seconds

0.665 seconds

8.802 seconds

3.552 seconds

0.892 seconds

6.299 seconds

3.713 seconds

3.349 seconds

0.447 seconds

18.152 seconds

5.590 seconds

5.760 seconds

0.190 seconds

54.399 seconds

0.366 seconds