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学习之整理字符串
Apr 17 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
php实现每日签到功能
Nov 29 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
PHP Web表单生成器案例分析
Jun 02 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图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP pear安装配置教程
2016/05/14 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
Python编程实现蚁群算法详解
2017/11/13 Python
python实现学生管理系统
2018/01/11 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Django框架 querySet功能解析
2019/09/04 Python
python识别验证码图片实例详解
2020/02/17 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
节能标语大全
2014/06/21 职场文书
客户答谢会活动方案
2014/08/31 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers