对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