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伪造referer突破网盘禁止外连的代码
Jun 15 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
PHP基础知识介绍
Sep 17 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
PHP简单遍历对象示例
Sep 28 PHP
thinkPHP商城公告功能开发问题分析
Dec 01 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
PHP-FPM和Nginx的通信机制详解
Feb 01 PHP
stripos函数知识点实例分享
Feb 11 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
初学Javascript的一些总结
2008/11/03 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
不可错过的十本Python好书
2017/07/06 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
python几种常用功能实现代码实例
2019/12/25 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
开放系统互连参考模型
2016/06/29 面试题
财务会计人员求职的自我评价
2014/01/13 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
情人节活动总结范文
2015/02/05 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
JavaScript实现两个数组的交集
2022/03/25 Javascript
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript