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 相关文章推荐
一个SQL管理员的web接口
Oct 09 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
php构造函数与析构函数
Apr 23 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
php批量删除操作代码分享
Feb 26 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
PHP isset()及empty()用法区别详解
Aug 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
javascript判断office版本示例
2014/04/11 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
python操作kafka实践的示例代码
2019/06/19 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
python中pyplot基础图标函数整理
2020/11/10 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
历史专业个人求职信范文
2013/12/07 职场文书
美容院经理岗位职责
2014/04/03 职场文书
节水倡议书范文
2014/04/15 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
提拔干部考察材料
2014/05/26 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
Log4j.properties配置及其使用
2021/08/02 Java/Android