博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列化与json性能评测
阅读量:7154 次
发布时间:2019-06-29

本文共 2341 字,大约阅读时间需要 7 分钟。

日常工作中需要在数据库中存储一些结构数据,常用的方法有两种,一是序列化(serialize),二是json格式。

两者各有优缺点,比如序列化支持对象格式、序列化后的数据会保存数据类型和数据个数。而json格式相比序列化的数据更短,并且前后端交互时适用性也更好。

但在实际的项目中,应该用哪种格式来存储数据呢?网上说法不一,老手们更倾向于序列化(可能是因为json格式是在PHP5.2之后才引进的),而年轻小伙们更倾向于json(可能他们没听说过序列化),今天抛开其他的不谈,只从性能上看看,哪种格式性能更好。

测试环境

测试日期:2016年07月23日

测试机:MacBook Pro(13 英寸,2015 年初期)

CPU:2.7 GHz Intel Core i5

内存:8 GB 1867 MHz DDR3

PHP版本:PHP 5.6.15

测试说明

测试步骤:

1.小数据的序列化和json压缩
2.小数据的序列化和json解压缩
3.大数据的序列化和json压缩
4.大数据的序列化和json解压缩
测试方法:
每次测试循环10次,每个操作循环10000次

开始测试

测试结论在最下面,测试代码在最最下面,对数据没兴趣的小伙伴可以直接拉到最下面

小数据压缩

测试数据

[1,2,3,4,5,6,7,8,9,0]

序列化

0.0138027667999270.0127010345458980.0152099132537840.0127069950103760.0128059387207030.0133938789367680.0131478309631350.0128941535949710.0134789943695070.012289047241211

json

0.00543403625488280.00525307655334470.00503277778625490.00515699386596680.00539708137512210.00503277778625490.00499200820922850.00525283813476560.00510907173156740.0069460868835449

小数据解压缩

测试数据

序列化:a:10:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:0;}JSON:[1,2,3,4,5,6,7,8,9,0]

序列化

0.0121419429779050.0124239921569820.0114059448242190.0118410587310790.0114889144897460.0139200687408450.0118851661682130.011649847030640.0114600658416750.012734889984131

json

0.0145719051361080.0140709877014160.0155000686645510.0138020515441890.0158941745758060.0142951011657710.0139560699462890.0138361454010010.0144870281219480.012983083724976

大数据压缩

测试数据

怕影响排版,只放上网址,可以复制后查看http://api.mooninbox.com/api4/?api=goods/all

序列化

0.96945500373840.983437061309810.979172945022581.00351309776310.99044203758241.01371002197270.96739006042481.01104903221130.966773986816410.98873591423035

json

1.76597714424131.80204391479491.77549386024481.75249004364011.73965096473691.7164230346681.7084870338441.74350810050961.71373796463011.724583864212

大数据解压缩

测试数据

怕影响排版,只放上网址,可以复制后查看http://api.mooninbox.com/api4/?api=goods/all

序列化

1.03628301620481.00820302963261.01941204071041.00993490219121.01234316825871.00729513168331.02139306068421.01407599449161.01161694526671.0359060764313

json

4.14453697204594.11144089698794.07407498359684.10120296478274.11108899116524.09485387802124.11674094200134.09592795372013.92713308334353.935909986496

测试结果

在小数据压缩方面,json比序列化快了近1倍,而其他方面序列化比json都要快一些,特别是大数据解压缩这一块整整快了4倍。

有了这些数据支持,你会怎么选呢?

反正我是会用json,拿到json之后直接丢给前端或者移动端,让他们自己去处理吧,理由就是“服务端的性能很宝贵,哈哈哈”

测试代码

'; $i++;}

转载地址:http://durgl.baihongyu.com/

你可能感兴趣的文章
hadoop fs -mkdir testdata错误 提示No such file or directory
查看>>
etcd的学习心得和使用
查看>>
AAAI 2018论文解读 | 基于置信度的知识图谱表示学习框架
查看>>
服务器命令审计
查看>>
【Go语言】【1】windows操作系统下GO环境配置
查看>>
zebra路由软件使用大全
查看>>
Android WebService
查看>>
PostgreSQL security - don't use password method in pg_hba.conf
查看>>
RDS MySql支持online ddl
查看>>
在Hudson中,使用ant自动对安卓项目编译打包apk
查看>>
【JSP开发】利用request获取各种值
查看>>
Vue全家桶web端社区项目
查看>>
多次Push Pop导致的`Can't add self as subview`问题
查看>>
从萌新的角度理解JVM内存管理
查看>>
d3.js 关于力引导图的简单解析
查看>>
pm2实践指南
查看>>
preload和prefetch
查看>>
哦屋~如此完美的富文本编辑器你值得拥有
查看>>
LeetCode 之 JavaScript 解答第226题 —— 翻转二叉树(Invert Binary Tree)
查看>>
去中心化应用的五大制胜关键
查看>>