PHP中json_encode、json_decode与serialize、unserialize的性能测试分析


Posted in PHP onJune 09, 2010

于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之前同事推荐的JSON编码和解码函数。
据他所说,json_encode和json_decode比内置的serialize和unserialize函数要高效。
于是我决定动手实验,证实一下同事所说的情况是否属实。
实验分别在PHP 5.2.13和PHP 5.3.2环境下进行。
用同一个变量,分别用以上方式进行编码或解码10000次,并得出每个函数执行10000次所需的时间。
以下是PHP 5.2.13环境其中一次测试结果:

json : 190 
serialize : 257 
json_encode : 0.08364200592041 
json_decode : 0.18004894256592 
serialize : 0.063642024993896 
unserialize : 0.086990833282471 
DONE.

以下是PHP 5.3.2环境其中一次测试结果:
json : 190 
serialize : 257 
json_encode : 0.062805891036987 
json_decode : 0.14239192008972 
serialize : 0.048481941223145 
unserialize : 0.05927300453186 
DONE.

这次实验得到的结论是:
json_encode和json_decode的效率并没有比serialize和unserialize的效率高,在反序列化的时候性能相差两倍左右,PHP 5.3执行效率比PHP 5.2略有提升。
以下是我用来做测试的代码:
<?php 
$target = array ( 
'name' => '全能头盔', 
'quality' => 'Blue', 
'ti_id' => 21302, 
'is_bind' => 1, 
'demand_conditions' => 
array ( 
'HeroLevel' => 1, 
), 
'quality_attr_sign' => 
array ( 
'HeroStrength' => 8, 
'HeroAgility' => 8, 
'HeroIntelligence' => 8, 
), 
); 
$json = json_encode($target); 
$seri = serialize($target); 
echo "json :\t\t" . strlen($json) . "\r\n"; 
echo "serialize :\t" . strlen($seri) . "\r\n\r\n"; 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
json_encode($target); 
} 
$etime = microtime(true); 
echo "json_encode :\t" . ($etime - $stime) . "\r\n"; 
//---------------------------------- 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
json_decode($json); 
} 
$etime = microtime(true); 
echo "json_decode :\t" . ($etime - $stime) . "\r\n\r\n"; 
//---------------------------------- 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
serialize($target); 
} 
$etime = microtime(true); 
echo "serialize :\t" . ($etime - $stime) . "\r\n"; 
//---------------------------------- 
$stime = microtime(true); 
for ($i = 0; $i < 10000; $i ++) 
{ 
unserialize($seri); 
} 
$etime = microtime(true); 
echo "unserialize :\t" . ($etime - $stime) . "\r\n\r\n"; 
echo 'DONE.'; 
?>
PHP 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
php你的验证码安全码?
Jan 02 PHP
php变量范围介绍
Oct 15 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
Linux下 php7安装redis的方法
Nov 01 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 #PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 #PHP
腾讯QQ php程序员面试题目整理
Jun 08 #PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 #PHP
php的字符串用法小结
Jun 08 #PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 #PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 #PHP
You might like
PHP关联数组的10个操作技巧
2013/01/21 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
python 自动重连wifi windows的方法
2018/12/18 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
阿里旅行:飞猪
2017/01/05 全球购物
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
Python里面如何拷贝一个对象
2014/02/17 面试题
中学生自我鉴定
2014/02/04 职场文书
教师个人鉴定材料
2014/02/08 职场文书
优秀党员先进材料
2014/12/18 职场文书
责任书范本大全
2015/05/11 职场文书
2015年节能减排工作总结
2015/05/14 职场文书