php msgpack 性能,php implode/explode, serialize, json, msgpack 性能对比
php implode/explode, serialize, json, msgpack 性能对比由于implode/explode不适合使用复杂的结构,因此常用的为serialize,json,msgpack三种。而三种比较,运
php implode/explode, serialize, json, msgpack 性能对比
首先使用implode, serialize, json_encode, msgpack_pack创建四个文本文件,用于测试。
创建代码如下:
$arr = array(
'content1' => '一二三四五六七八九十',
'content2' => '一二三四五六七八九十',
'content3' => '一二三四五六七八九十'
);
echo file_put_contents('implode.txt', implode(',',$arr), true).'
';
echo file_put_contents('serialize.txt', serialize($arr), true).'
';
echo file_put_contents('json.txt', json_encode($arr), true).'
';
echo file_put_contents('msgpack.txt', msgpack_pack($arr), true);
?>
创建后生成
implode.txt 92字节
serialize.txt 165字节
json.txt 223字节
msgpack.txt 121字节
生成的字符串大小排序如下 implode < msgpack_pack < serialize < json_encode
如果数组简单,则json_encode有可能比serialize小
例如:
$arr = array('一','二','三','四','五','六','七','八','九','十');serialize 为147字节
json_encode 为91字节
比较 implode, serialize, json_encode, msgpack_pack 性能
$arr = array(
'content1' => '一二三四五六七八九十',
'content2' => '一二三四五六七八九十',
'content3' => '一二三四五六七八九十'
);
$start = microtime(true);
$i = 1000000;
while($i>0){
// 分别测试运行时间及内存使用情况
$tmp = implode(',',$arr);
// $tmp = serialize($arr);
// $tmp = json_encode($arr);
// $tmp = msgpack_pack($arr);
$i--;
}
$end = microtime(true);
echo 'run time:'.($end-$start).'s
';
echo 'memory usage:'.(memory_get_usage()/1024).'KB';
?>
implode
1.3225722312927s 628.50KB
serialize
2.0553789138794s 628.32KB
json_encode 2.5058920383453s 628.34KB
msgpack_pack 1.6431028842926s 628.24KB
结果:内存使用情况差不多,运行时间implode < msgpack_pack < serialize < json_encode
比较 explode, unserialize, json_decode, msgpack_unpack 性能
$data = file_get_contents('implode.txt');
//$data = file_get_contents('serialize.txt');
//$data = file_get_contents('json.txt');
//$data = file_get_contents('msgpack.txt');
$start = microtime(true);
$i = 1000000;
while($i>0){
$tmp = explode(',',$data);
//$tmp = unserialize($data);
//$tmp = json_decode($data, true);
//$tmp = msgpack_unpack($data);
$i--;
}
$end = microtime(true);
echo 'run time:'.($end-$start).'s
';
echo 'memory usage:'.(memory_get_usage()/1024).'KB';
?>
explode
1.7446749210358s 628.74KB
unserialize
2.1386790275574s 628.67KB
json_decode
5.2423169612885s 628.84KB
msgpack_unpack 2.2290098667145s 628.63KB
结果:内存使用情况差不多,运行时间 explode < serialize < msgpack_unpack < json_decode
总结,由于implode/explode不适合使用复杂的结构,因此常用的为serialize,json,msgpack三种。
而三种比较,运行速度,,内存占用,空间占用最优为msgpack, 其次是serialize,最后是json。
如有条件,建议使用msgpack序列化处理数据。
关于msgpack 可以查看我之前写的文章:《MessagePack 序列化格式》
php msgpack 性能,php implode/explode, serialize, json, msgpack 性能对比相关推荐
- Asp.net Web Api开发 性能:使用Jil提升Json序列化性能
from:http://blog.csdn.net/sqqyq/article/details/51692342 看了几篇网上关于各种序列化工具的性能对比,在这里再粘贴下: 我们使用了ASP.NET ...
- Asp.net Web Api开发(第二篇)性能:使用Jil提升Json序列化性能
看了几篇网上关于各种序列化工具的性能对比,在这里再粘贴下: 我们使用了ASP.NET WEB API来提供RESTfull风格的接口给APP调用,默认序列化库用的是:Newtonsoft.Json 为 ...
- 几种常用 JSON 库性能比较
点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 原文:www.xncoding.com/2018/01/09/java/jsons.html ...
- JAVA中几种常用JSON库性能比较
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:飞污熊 xncoding.com/2018/01/09/java/jsons.html 本 ...
- gson json转map_Java几种常用JSON库性能比较
点击上方"Java研发军团",选择"置顶公众号" 关键时刻,第一时间送达! 阅读本文需要5分钟 作者:飞污熊 xncoding.com/2018/01/09/j ...
- 绝了,几款主流的 JSON 库性能对比!
本篇通过JMH(Oracle官方测试框架)来测试一下Java中几种常见的JSON解析库的性能.每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库.但是百闻不如一见,只有自己亲手测试过的才 ...
- Java 几种常用 JSON 库性能比较
作者:熊能 原文地址:www.xncoding.com/2018/01/09/java/jsons.html 本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能.每次都在网上看到别人说什 ...
- json.parser性能_Jackson JSON Java Parser API示例教程
json.parser性能 Jackson JSON Java Parser is very popular and used in Spring framework too. Java JSON P ...
- 主流JSON引擎性能比较(GSON,FASTJSON,JACKSON,JSONSMART)
JsonPerformanceVS 主流JSON引擎性能比较(GSON,FASTJSON,JACKSON,JSONSMART) 文章目录 JsonPerformanceVS 前言 测试目的: Purp ...
最新文章
- vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...
- linux扩充消息队列,Linux关于消息队列的使用分享
- 小米高管否认鸿蒙,小米参加华为鸿蒙系统实验?小米高管终于回应,网友评论炸了!...
- LibreOffice去重复数据
- php 生存分析,HPA数据库08.做生存分析
- 数模论文研读--------09年B题:眼科病床
- Android开发:setAlpha()方法
- Docker下部署oracle10g
- html+表格+左侧表头,HTML thead表格表头 标签
- Learning to ranking简介
- 易用、弹性、开放 — 云原生技术是数字时代的“水电煤”
- 东南亚痴狂诈骗的背后,意外暴露一个大型“围猎”程序员的现场
- hdu 1043 Eight 经典八数码问题
- 微信多开器 Python窗口编程 隔离运行(一)
- 刘振飞:互联网项目研发管理心得
- Socks5协议中文文档(RFC1928)
- 在PPT中插入FLASH遇到的系列问题
- UE特效--Spline蓝图--制作数字城市道路分析
- QStockView股票监测和分析方法
- 推荐一个很好用的在线文档翻译器:翻译狗
热门文章
- 阿里云服务器安全组如何配置?
- Lumus最新光波导模组:单目2K,PPD达60,亮度5000nit
- android tabhost 动画,Android中使用TabHost 与 Fragment 制作页面切换效果
- 机房空调数据采集监控解决方案
- 个人设计web前端大作业
- swift语言基础语法思维导图
- java案例--利用抽象类模拟加油站消费
- 专访5位技术人,探秘AI职业背后的故事
- 系统属性由于启动计算机时,win7系统开机弹出“系统属性,由于启动计算机时出现了页面文件配置问题”的解决方法...
- scikit-learn: isotonic regression(保序回归,非常有意思,仅做知识点了解,但差点儿没用到过)...