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序列化存储 则需要删除再创建一个文件,不然会反序列化失败,因为它是二进制的.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析