MENU

关于file_get_contents和curl拓展的效率问题

• March 22, 2020 • 日常

前因后果

昨天在写《利用Api获取必应的每日一图》的时候就在想,file_get_contentscurl拓展到底哪个效率更高一点,可能有的人会在想,我为什么要研究这个问题,这一切的一切都要从一个人吃了一只蝙蝠说起...

说干就干

既然想到了,就要来研究,大概思路我都想好了,先计算出file_get_contentscurl拓展运行时间,在比较,不就可以看出来效率问题了么。至于这个消耗的内存,这不在我的考虑范围之内。
新建一个php,我们先写一个获取时间的函数,因为php获取的时间戳是秒级的,我们需要的是毫秒级。

//获取毫秒时间戳
function get_time() {
  list($s1, $s2) = explode(' ', microtime());
  return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);
}

然后在计算file_get_contents和curl拓展的运行时间

$a = get_time();
file_get_contents("http://www.moleft.cn");
$b = get_time();
echo "使用file_get_contents用时:".($b-$a)."毫秒<br>";
$c = get_time();
get_curl("http://www.moleft.cn");
$d = get_time();
echo "使用curl用时:".($d-$c)."毫秒";

然后我们来访问一下,看看得到的结果。但是我感觉一次两次说明不了什么,所以我们多做几次试验。

试验结果

试验次数file_get_contentscurl拓展
第一次135毫秒124毫秒
第二次137毫秒39毫秒
第三次87毫秒77毫秒
第四次88毫秒68毫秒
第五次208毫秒69毫秒
第六次58毫秒71毫秒
第七次55毫秒128毫秒
第八次132毫秒37毫秒
第九次110毫秒100毫秒
第十次131毫秒85毫秒

分析结果

为什么我感觉这篇文章写成了物理实验报告,emmmmm,这就涉及到我的知识盲区了。其实综合实验结果来看,file_get_contents和curl拓展的数据起伏很大,不知道是不是我的实验方法有错,反正看起来curl拓展更胜一筹吧。
如果嫌麻烦可以用file_get_contents,然后如果服务器没有OpenSSL或者追求更好的体验可以用curl拓展

结尾的话

我太棒了,又水了一篇文章~

Last Modified: May 26, 2020
Archives 下载海报
QR Code for this page
Tipping QR Code