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&amp;mysql(五)
Oct 09 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
完善CodeIgniter在IDE中代码提示功能的方法
Jul 19 PHP
php链表用法实例分析
Jul 09 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
php json中文编码为null的解决办法
Dec 14 PHP
PHP中overload与override的区别
Feb 13 PHP
php实现简单加入购物车功能
Mar 07 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
axios拦截设置和错误处理方法
2018/03/05 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python 流程控制实例代码
2009/09/25 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
python实现批量监控网站
2016/09/09 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python pytest进阶之fixture详解
2019/06/27 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
工厂厂长的职责
2013/12/12 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
医学生求职自荐书
2014/06/12 职场文书
年度安全生产目标责任书
2014/07/23 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书