php的各种序列化对比
php的各个序列化反序列化对比如下
| function | 10万条记录的序列化并写入(ms) | 10万条记录文件读取并反序列化(ms) | 100条记录序列化并写入(ms) | 100条记录文件读取并反序列化(ms) |
| serialize | 106-200 | 85-95 | 0.18-0.34 | 0.15-0.22 |
| json_encode | 73-128 | 179-189 | 0.12-0.25 | 0.20-0.32 |
| msgpack_pack | 75-99 | 95-102 | 0.17-0.24 | 0.20-0.27 |
| igbinary_serialize | 60-65 | 48-54 | 0.18-0.22 | 0.12-0.18 |
| swoole_serialize | 33-36 | 74-76 | 0.13-0.20 | 0.15-0.19 |
文件读取写入使用的是 file_get_contents 和 file_put_contents
综合发现
igbinary_serialize 读取更快 适合读多写少(其实也兼容了写 但是比swoole_serialize稍微慢)
swoole_serialize 写入更快 适合写多读少(其实也兼容了读 但是比igbinary稍微慢)
如果以文件存储做数据来源 那么
缓存系统更适合 igbinary serialize
并发系统更适合 swoole serialize
使用 igbinary 做了一个json存储 效率是这样的
1000条数据
按主键查找耗时 0.56 毫秒
按条件查找 unlimit 耗时 1.29
按条件查找 limit 耗时 0.85 与主键查找相差不大(没有遍历全表的情况下 如果给的limit还是要遍历全表 那和unlimit相差不大)
如果文件以前用的不是igbinary序列化存储 则需要删除再创建一个文件,不然会反序列化失败,因为它是二进制的.
php的各种序列化对比的更多相关文章
- Xml,Json,Hessian,Protocol Buffers序列化对比
简介 这篇博客主要对Xml,Json,Hessian,Protocol Buffers的序列化和反序列化性能进行对比,Xml和Json的基本概念就不说了. Hessian:Hessian是一个轻量级的 ...
- Protocol Buffer序列化对比Java序列化.
初识 Protocol Buff是谷歌推出的一种序列化协议. 而Java序列化协议也是一种协议. 两者的目的是, 将对象序列化成字节数组, 或者说是二进制数据, 那么他们之间有什么差异呢. proto ...
- C# 序列化详解,xml序列化,json序列化对比
本文讲讲一些纯技术的东西.并且讲讲一些原理性的东西,和一般的百度的文章不一致,如果你对序列化不清楚,绝对可以很有收获. 技术支持QQ群(主要面向工业软件及HSL组件的):592132877 (组件的 ...
- redis使用Jackson2JsonRedisSerializer序列化问题
一.spring boot 集成Redis方法 依赖 <!--redis--> <dependency> <groupId>org.springframework. ...
- [转]自定义ASP.NET MVC JsonResult序列化结果
本文转自:http://blog.163.com/luckcq@yeah/blog/static/17174770720121293437119/ 最近项目中前台页面使用EasyUI的jQuery插件 ...
- java序列化,看这篇就够了
一.序列化的含义.意义及使用场景二.序列化实现的方式1.Serializable1.1 普通序列化1.2 成员是引用的序列化1.3 同一对象序列化多次的机制1.4 java序列化算法潜在的问题1.5 ...
- 19、Java 序列化
1.序列化的概念,意义以及使用场景 序列化: 将对象写入到IO流中,也就是把Java对象转换为字节序列的过程 反序列化: 从IO流中恢复对象*,也就是把字节序列恢复为Java对象的过程 意义: 序列化 ...
- 性能超四倍的高性能.NET二进制序列化库
二进制序列化在.NET中有很多使用场景,如我们使用分布式缓存时,通常将缓存对象序列化为二进制数据进行缓存,在ASP.NET中,很多中间件(如认证等)也都是用了二进制序列化. 在.NET中我们通常使用S ...
- 说说面向服务的体系架构SOA
序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...
- 关于大小型项目如何最大限度提高WebAPi性能
前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力 ...
随机推荐
- P 问题和 NP 问题的简单理解
P/NP问题 | 维基百科 P 问题 P 问题的定义是:所有可以由一个确定型图灵机在多项式表达的时间内解决的问题 P 代表 Polynomial-time (adj. 多项式时间) 简单理解:答案可以 ...
- 【Python】之Mac使用图片识别pytesseract方法报错
一.前提: python中使用pytesseract图片识别,报错误: pytesseract.pytesseract.TesseractNotFoundError: tesseract is not ...
- JVM笔记九-GC收集器日志信息学习
在上一篇文章中,我们通过代码运行结果,查看到JVM的堆内存逻辑上分区是三部分,物理上分区是2部分,以及是新生代分区三部分,占比分布是8/1/1.而且我们还通过代码和堆JVM参数配置,制造出了OOM异常 ...
- [JS设计模式]:鸭子类型与多态
鸭子类型 编程语言按照数据类型大体可以分为两类,一类是静态类型语言,另一类是动态类型语言. 动态类型语言对变量类型的宽容给实际编码带来了很大的灵活性.由于无需进行类型检测,我们可以尝试调用任何对象的任 ...
- ASP.NET Core – Thread, Task, Async 线程与异步编程
前言 平常写业务代码, 很少会写到多线程. 久了很多东西都忘光光了. 刚好最近在复习 RxJS. 有一篇是讲 scheduler 的. 会讲到 JavaScript 异步相关的资讯. 既然如此那就一次 ...
- ASP.NET Core – Filter
介绍 Filter 类似 Middleware,只是它集中在处理 request 的前后, 站 MVC 角度看就是 before 和 after action, 站 Razor Pages 角度就是 ...
- 阿里云Centos7修改MariaDB数据库连接时间,解决连接mysql报Too many connection的问题
在测项目的时候突然发现数据库连接不上了,提示Too many connection. 产生问题的原因是MySQL的Sleep进程占用了大量的连接,当时是重启mysql解决的这个问题!后来又配置了连接池 ...
- 《华为云DTSE》期刊免费下载:10个案例读懂云上架构升级策略
本文分享自华为云社区<<华为云DTSE>期刊第四期赋能云专刊,赋能云场景下DTSE服务各类开发者的案例分享>,作者:HuaweiCloudDeveloper. 把公司的开发者平 ...
- vsphere8.0 VCenter部署
一.vCenter Server 介绍 vCenter Server是VMware提供的一种集中管理平台,用于管理和监控虚拟化环境中的虚拟机.主机.存储和网络等资源.它提供了一套功能强大的工具和界面, ...
- LeetCode 650. 2 Keys Keyboard(只有两个键的键盘)(DP/质因数分解)
最初在一个记事本上只有一个字符 'A'.你每次可以对这个记事本进行两种操作: Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的). Paste (粘贴) : ...