php curl中gzip的压缩性能测试实例分析


Posted in PHP onNovember 08, 2016

本文实例分析了php curl中gzip的压缩性能测试。分享给大家供大家参考,具体如下:

前因:

请求接口次数很多,每日两亿多次,主要是有些接口返回数据量很大高达110KB(为了减少请求次数,将多个接口合并成一个导致的)。

后端接口的nginx已经开启gzip,所以做个测试,看看是否在请求时使用压缩解压

php CURL 的扩展安装这里就不说了

用到的curl的两个参数

//在http 请求头加入 gzip压缩
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));
//curl返回的结果,采用gzip解压
curl_setopt($ch, CURLOPT_ENCODING, "gzip");

1、不使用压缩解压

$s1 = microtime(true);
$ch = curl_init();
for($i=0; $i<100;$i++){
  $url="http://192.168.0.11:8080/xxxxx/xxxxx?";
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  $data = curl_exec($ch);
}
curl_close($ch);
echo microtime(true)-$s1;
echo "\n";

测试结果:

请求100次平均耗时 2.1s   0.021s/次

2、使用压缩解压

$s1 = microtime(true);
$ch = curl_init();
for($i=0; $i<100;$i++){
  $url="http://192.168.0.1:8080/xxxxx/xxxxx?";
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));
  curl_setopt($ch, CURLOPT_ENCODING, "gzip");
  $data = curl_exec($ch);
}
curl_close($ch);
echo microtime(true)-$s1;
echo "\n";

测试结果:

请求100次平均耗时 2.6s   0.026/次

结果分析:

1、不使用压缩比使用压缩 请求一次快 5ms

2、千兆网,在局域网内传输这些数据大概是 0.7ms

结论:

暂时不使用 curl 的压缩和解压

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
关于PHPDocument 代码注释规范的总结
Jun 25 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
PHP的Json中文处理解决方案
Sep 29 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
Laravel框架数据库迁移操作实例详解
Apr 06 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 PHP
详解PHP中的8个魔术常量
Jul 06 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 #PHP
php实现的http请求封装示例
Nov 08 #PHP
PHP实现原生态图片上传封装类方法
Nov 08 #PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 #PHP
Yii2框架BootStrap样式的深入理解
Nov 07 #PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 #PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 #PHP
You might like
php缓冲 output_buffering的使用详解
2013/06/13 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
js读取配置文件自写
2014/02/11 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
用原生js做单页应用
2017/01/17 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
使用Python制作微信跳一跳辅助
2018/01/31 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python调用摄像头显示图像的实例
2018/08/03 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
python多线程并发实例及其优化
2019/06/27 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
J2EE系统只能是基于web
2015/09/08 面试题
施工人员岗位职责
2013/12/12 职场文书
2014教师研修学习体会
2014/07/08 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
故宫导游词
2015/01/31 职场文书
商务宴会祝酒词
2015/08/11 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书