对curl的常用函数的测试与分析
时间:2007-06-27
来源:互联网
             今天昨天有人问了一个关于curl的问题
开始我回复一个由他的提供的源代码精简而成的函数
后来在他的提醒下,发现这个只能是方便调用,
但不能提高速度
因为当时只是手写代码没有去测试所以不知道有没有问题
今天放假在家就做了一下测试
测试代码跟结果如下
----------------
----------------
发现占用资源最多的是curl_exec,而且还发现一个问题,
就是在测试调用curl_init与curl_setopt时,与网络根本没有连接过
直到去测试curl_exec时,才与网络有连接
其实在这之前,我一直以为在curl_init调用的时候就已经打开了与一个网络关联资源
但是现在这样的测试表明
curl_init返回的资源根本只是一个关联起来的资源
从数据上来分析
curl_init与curl_setopt都是在定义一个变量,但真正执行者是curl_exec
curl_exec是完成了打开->监听->返回数据的过程
结论
如果要实现提速的话只能只用一次curl_init和curl_close
但是只能提高非常小的一速度。
            开始我回复一个由他的提供的源代码精简而成的函数
后来在他的提醒下,发现这个只能是方便调用,
但不能提高速度
因为当时只是手写代码没有去测试所以不知道有没有问题
今天放假在家就做了一下测试
测试代码跟结果如下
  复制PHP内容到剪贴板
  
<?
$mt_1=ReturnMicrotime();
$curl=curl_init($url);//
curl_setopt ($curl, CURLOPT_HEADER, "Accept-Encoding: gzip, deflate");
For($i=0; $i<10; $i++)
{
curl_exec($curl);
}
$mt_2=ReturnMicrotime();
$mt=$mt_2-$mt_1;
echo($mt);
?>
  
结果:18.163676023483PHP代码:
<?
$mt_1=ReturnMicrotime();
$curl=curl_init($url);//
curl_setopt ($curl, CURLOPT_HEADER, "Accept-Encoding: gzip, deflate");
For($i=0; $i<10; $i++)
{
curl_exec($curl);
}
$mt_2=ReturnMicrotime();
$mt=$mt_2-$mt_1;
echo($mt);
?>
----------------
  复制PHP内容到剪贴板
  
  
For($i=0; $i<1000; $i++)
{
$curl[]=curl_init($url);
}
$mt_2=ReturnMicrotime();
$mt=$mt_2-$mt_1;
echo($mt);
  
结果:2.7319769859314PHP代码:
$mt_1=ReturnMicrotime();For($i=0; $i<1000; $i++)
{
$curl[]=curl_init($url);
}
$mt_2=ReturnMicrotime();
$mt=$mt_2-$mt_1;
echo($mt);
----------------
  复制PHP内容到剪贴板
  
$curl=curl_init($url);//
For($i=0; $i<1000; $i++)
{
curl_setopt ($curl, CURLOPT_HEADER, "Accept-Encoding: gzip, deflate");
}
$mt_2=ReturnMicrotime();
$mt=$mt_2-$mt_1;
echo($mt);
  
结果:0.011240005493164PHP代码:
$mt_1=ReturnMicrotime();$curl=curl_init($url);//
For($i=0; $i<1000; $i++)
{
curl_setopt ($curl, CURLOPT_HEADER, "Accept-Encoding: gzip, deflate");
}
$mt_2=ReturnMicrotime();
$mt=$mt_2-$mt_1;
echo($mt);
发现占用资源最多的是curl_exec,而且还发现一个问题,
就是在测试调用curl_init与curl_setopt时,与网络根本没有连接过
直到去测试curl_exec时,才与网络有连接
其实在这之前,我一直以为在curl_init调用的时候就已经打开了与一个网络关联资源
但是现在这样的测试表明
curl_init返回的资源根本只是一个关联起来的资源
从数据上来分析
curl_init与curl_setopt都是在定义一个变量,但真正执行者是curl_exec
curl_exec是完成了打开->监听->返回数据的过程
结论
如果要实现提速的话只能只用一次curl_init和curl_close
但是只能提高非常小的一速度。
作者: bkkkd 发布时间: 2007-06-26
             就是在测试调用curl_init与curl_setopt时,与网络根本没有连接
花的时间少,你就能说明它没工作过?
curl的工作流程只有看它源码才能分析出来。
            花的时间少,你就能说明它没工作过?
curl的工作流程只有看它源码才能分析出来。
作者: 我要读书网 发布时间: 2007-08-27
             最近在做SSO  也用到了CURL
感觉挺不错的东西.哈哈
            感觉挺不错的东西.哈哈
作者: 逆雪寒 发布时间: 2007-08-28
 相关阅读 更多  
      
    热门阅读
-  
 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
          阅读:74
 -  
 如何安装mysql8.0
          阅读:31
 -  
 Word快速设置标题样式步骤详解
          阅读:28
 -  
 20+道必知必会的Vue面试题(附答案解析)
          阅读:37
 -  
 HTML如何制作表单
          阅读:22
 -  
 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
          阅读:31
 -  
 ET文件格式和XLS格式文件之间如何转化?
          阅读:24
 -  
 react和vue的区别及优缺点是什么
          阅读:121
 -  
 支付宝人脸识别如何关闭?
          阅读:21
 -  
 腾讯微云怎么修改照片或视频备份路径?
          阅读:28
 















