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 相关文章推荐
php中使用临时表查询数据的一个例子
Feb 03 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
php实现图片以base64显示的方法
Oct 13 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
php实现文件上传基本验证
Mar 04 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 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
推荐文章系统(一)
2006/10/09 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Pandas标记删除重复记录的方法
2018/04/08 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
python flask安装和命令详解
2019/04/02 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
党委书记岗位职责
2013/11/24 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
党员岗位承诺书
2014/03/25 职场文书
青年文明号汇报材料
2014/12/23 职场文书
人民币使用说明书
2019/04/17 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python
Python利用capstone实现反汇编
2022/04/06 Python