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下实现农历日历的代码
Mar 07 PHP
在JavaScript中调用php程序
Mar 09 PHP
处理php自动反斜杠的函数代码
Jan 05 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
php多任务程序实例解析
Jul 19 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
php排序算法实例分析
Oct 17 PHP
自制PHP框架之模型与数据库
May 07 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
详解php与ethereum客户端交互
Apr 28 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
python链接Oracle数据库的方法
2015/06/28 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python编程argparse入门浅析
2018/02/07 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python中的decimal类型转换实例详解
2019/06/26 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
前台接待员岗位职责
2015/04/15 职场文书
python如何读取.mtx文件
2021/04/22 Python
新手初学Java List 接口
2021/07/07 Java/Android
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers