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生成自己的LOG文件
Oct 09 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
php Calender(日历)代码分享
Jan 03 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
php中memcache 基本操作实例
May 17 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
php反射学习之依赖注入示例
Jun 14 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 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 MVC模式在网站架构中的实现分析
2010/03/04 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
JavaScript Eval 函数使用
2010/03/23 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
js仿360开机效果
2019/12/26 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
Django中Forms的使用代码解析
2018/02/10 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
django的autoreload机制实现
2020/06/03 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
青春寄语大全
2014/04/09 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
公司人力资源管理制度
2015/08/05 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android