资讯专栏INFORMATION COLUMN

序列化与json性能评测

XboxYan / 829人阅读

摘要:日常工作中需要在数据库中存储一些结构数据,常用的方法有两种,一是序列化,二是格式。两者各有优缺点,比如序列化支持对象格式序列化后的数据会保存数据类型和数据个数。而格式相比序列化的数据更短,并且前后端交互时适用性也更好。

日常工作中需要在数据库中存储一些结构数据,常用的方法有两种,一是序列化(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.013802766799927
0.012701034545898
0.015209913253784
0.012706995010376
0.012805938720703
0.013393878936768
0.013147830963135
0.012894153594971
0.013478994369507
0.012289047241211

json

0.0054340362548828
0.0052530765533447
0.0050327777862549
0.0051569938659668
0.0053970813751221
0.0050327777862549
0.0049920082092285
0.0052528381347656
0.0051090717315674
0.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.012141942977905
0.012423992156982
0.011405944824219
0.011841058731079
0.011488914489746
0.013920068740845
0.011885166168213
0.01164984703064
0.011460065841675
0.012734889984131

json

0.014571905136108
0.014070987701416
0.015500068664551
0.013802051544189
0.015894174575806
0.014295101165771
0.013956069946289
0.013836145401001
0.014487028121948
0.012983083724976
大数据压缩

测试数据

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

序列化

0.9694550037384
0.98343706130981
0.97917294502258
1.0035130977631
0.9904420375824
1.0137100219727
0.9673900604248
1.0110490322113
0.96677398681641
0.98873591423035

json

1.7659771442413
1.8020439147949
1.7754938602448
1.7524900436401
1.7396509647369
1.716423034668
1.708487033844
1.7435081005096
1.7137379646301
1.724583864212    
大数据解压缩

测试数据

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

序列化

1.0362830162048
1.0082030296326
1.0194120407104
1.0099349021912
1.0123431682587
1.0072951316833
1.0213930606842
1.0140759944916
1.0116169452667
1.0359060764313

json

4.1445369720459
4.1114408969879
4.0740749835968
4.1012029647827
4.1110889911652
4.0948538780212
4.1167409420013
4.0959279537201
3.9271330833435
3.935909986496        
测试结果

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

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

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

测试代码
";
    $i++;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21178.html

相关文章

  • Java 8 Stream的性能到底如何?

    摘要:而一个编译器本身是有一个上限的,虽然大部分情况下是用不满的。我们将此称作友好或者不友好的分割。同时,也不要无缘无故就觉得人家损害了你应用的性能,那是你自己用得不好。 Java 8提供的流的基于Lambda表达式的函数式的操作写法让人感觉很爽,笔者也一直用的很开心,直到看到了Java8 Lambda表达式和流操作如何让你的代码变慢5倍,笔者当时是震惊的,我读书少,你不要骗我。瞬间我似乎为...

    Sike 评论0 收藏0
  • 基准评测TensorFlow、Caffe等在三类流行深度神经网络上的表现

    摘要:在两个平台三个平台下,比较这五个深度学习库在三类流行深度神经网络上的性能表现。深度学习的成功,归因于许多层人工神经元对输入数据的高表征能力。在年月,官方报道了一个基准性能测试结果,针对一个层全连接神经网络,与和对比,速度要快上倍。 在2016年推出深度学习工具评测的褚晓文团队,赶在猴年最后一天,在arXiv.org上发布了的评测版本。这份评测的初版,通过国内AI自媒体的传播,在国内业界影响很...

    canopus4u 评论0 收藏0

发表评论

0条评论

XboxYan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<