igbinary vs serialize vs json_encode
2023-09-14 08:59:33 时间
igbinary vs serialize vs json_encode 2010-04-18 @ 23:01:58 · 作者 Volcano · 归类于 php 你可能会感兴趣的内容 关于“facebook的memcached实战”小记 试着开源LiteCloud项目 memcache连接慢又一例 启用memcached压缩注意事项 Memcache的备忘 最近看到memcached扩展支持额外的序列化方式 — igbinary,这是一个未收录到pecl的php扩展,它提供的两个主要方法: igbinary_serialize igbinary_unserialize 据称可以用它来代替php自带的序列化函数serialize,性能更好,而且占用的字节数也更少。下面我就 igbinary ,serialize ,json_encode三者的性能做了一个简单的测试。 测试 以一个包含1000000个元素的数组做为原始数据,分别以json, serialize, igbinary进行序列化和反向操作。 <?php ini_set('memory_limit', '512m'); $array = array_fill(0, 1000000, rand(1, 9999)); $start = microtime(true); $export = json_encode($array); $end = microtime(true); $duration = $end - $start; print('JSON Encode: ' . $duration . PHP_EOL); $start = microtime(true); $import = json_decode($export); $end = microtime(true); $duration = $end - $start; print('JSON Decode: ' . $duration . PHP_EOL); $start = microtime(true); $export = serialize($array); $end = microtime(true); $duration = $end - $start; print('Serialize: ' . $duration . PHP_EOL); $start = microtime(true); $import = unserialize($export); $end = microtime(true); $duration = $end - $start; print('Serialize: ' . $duration . PHP_EOL); $start = microtime(true); $export = igbinary_serialize($array); $end = microtime(true); $duration = $end - $start; print('Igbinary Serialize: ' . $duration . PHP_EOL); $start = microtime(true); $import = igbinary_unserialize($export); $end = microtime(true); $duration = $end - $start; print('Igbinary Serialize: ' . $duration . PHP_EOL); ?> 测试结果 JSON Encode: 0.084825992584229 JSON Decode: 0.34976410865784 Serialize: 0.38241410255432 Serialize: 7.7904229164124 Igbinary Serialize: 0.046916007995605 Igbinary Serialize: 0.23396801948547 从测试结果来看,速度方面优先级排列为 igbinary > json > serialize。同时我们也可以看到,php原生的serialize在对大对象进行反向操作时,速度真是掉队一大截了。 占用字节数对比 json: 5000001 serialize: 15888902 igbinary: 7868681 在没有中文字符的情况下,json胜出,igbinary次之,serialize又被甩了几条街。
相关文章
- vs单步调试及断点调试基本介绍(入门版详细图文介绍)
- python中面向对象VS面向过程
- VS 环境使用MySQL Connector C 6.1 连接数据库
- VS Code settings.json 10 个高(装)阶(杯)配置!
- 【数据分析模型】描述性 vs 预测性 vs 规范性 vs 诊断分析
- Flink教程(30)- Flink VS Spark[通俗易懂]
- FTP VS镭速传输,小文件传输技术内有乾坤
- 每日一博 - instanceof vs isInstance vs isAssignableFrom
- ChatGPT VS Bard :人工智能江湖“倚天屠龙记”
- Pretty Json 插件 - JSON格式化
- C#应用Newtonsoft.Json操作json[2]-反序列化不定类型详解编程语言
- MySQL存储JSON格式的数据(mysql存json格式)
- VS 2013与MySQL的结合:强大的数据库解决方案(vs2013mysql)
- 性能比较比较分析:VS编译器与Oracle数据库的性能差异(vs与oracle数据库)
- VS一键连接MySQL,数据库管理如此便捷(vs连接mysql)
- 对比SAP VS Oracle: 哪个更适合你?(sap与oracle)
- 使用Oracle解析JSON数据(oracle解析json)
- VS连接SQL Server:让你从此走向数据库的新世界(vs连sqlserver)
- VS联与SQL Server 配合协作,让工作更轻松。(vs联sqlserver)
- 服务【VS帮助快速开启MSSQL服务】(vs开启mssql)
- VS与SQLserver:搭建强大的开发体系(vs与sqlserver)
- VS MSSQL:强势对抗,谁为佳?(vs mssql)
- MySQL中JSON查询的方法和实践(mysql中json查询)
- JSON文件与Oracle数据库的互转实践(json文件oracle)
- VS中如何优雅地操作Redis(vs操作redis)
- JSON入门指南想了解json的朋友可以看下
- js获取IP和PcName(IE)在vs中可用
- jQuery的ajax传参巧用JSON使用示例(附Json插件)
- 使用JSON.parse将json字符串转换成json对象的时候会出错