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 相关文章推荐
输出控制类
Oct 09 PHP
PHP的FTP学习(二)
Oct 09 PHP
apache mysql php 源码编译使用方法
May 03 PHP
php include和require的区别深入解析
Jun 17 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
Nov 24 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
PHP实现负载均衡下的session共用功能
Apr 17 PHP
PHP接入支付宝接口失效流程详解
Nov 10 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随机生成福彩双色球号码的2种方法
2013/02/04 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
js setattribute批量设置css样式
2009/11/26 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
理解javascript异步编程
2016/01/27 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
Python数据结构之图的应用示例
2018/05/11 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
Python如何读写二进制数组数据
2020/08/01 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
软件测试企业面试试卷
2016/07/13 面试题
团日活动总结模板
2014/06/25 职场文书
自主招生学校推荐信
2014/09/26 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
离婚协议书范本2014
2014/10/27 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
聘任证明怎么写
2015/03/02 职场文书
小学生读书笔记范文
2015/06/30 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
vue+iview实现手机号分段输入框
2022/03/25 Vue.js