测试1
1,操作元素较少,单个元素比较大,英文,3个元素操作1000次
代码如下 | 复制代码 |
$data = array('hello','word'); $jsonen_sarttime = getmicrotime(); } $jsonde_starttime = getmicrotime(); echo "jsondecode耗时:".($jsonde_endtime - $jsonde_starttime)." $seri1_starttime = getmicrotime(); $seri2_starttime = getmicrotime(); echo "serialize反序列化耗时:".($seri2_endtime - $seri2_starttime)." /** |
output:
json长度:90019
jsonencode耗时:1.0974299907684
jsondecode耗时:1.6237480640411
serialize长度:90052
serialize序列化耗时:0.025779962539673
serialize反序列化耗时:0.029321193695068
可以看到json在做英文处理的时候,数组元素较少,体积要小于序列化的数据.处理效率低于序列化.
将data 更改为
代码如下 | 复制代码 |
$data = array('hello','word'); |
output:
json长度:120019
jsonencode耗时:0.83260488510132
jsondecode耗时:2.2054090499878
serialize长度:60052
serialize序列化耗时:0.01835298538208
serialize反序列化耗时:0.01848292350769
可以看到 json在做文字处理的时候,体积较大,处理效率也略低于序列化.
3.将数据更改为
代码如下 | 复制代码 |
$data = array('hello','word'); |
output:
json长度:150016
jsonencode耗时:2.1428198814392
jsondecode耗时:6.5845320224762
serialize长度:198939
serialize序列化耗时:2.8011980056763
serialize反序列化耗时:4.6967668533325
可以看到json体积略小于serialize
4.将data修改为
代码如下 | 复制代码 |
$data = array('hello','word'); |
output:
json长度:80016
jsonencode耗时:1.6437809467316
jsondecode耗时:4.5136170387268
serialize长度:188939
serialize序列化耗时:2.909558057785
serialize反序列化耗时:4.4678349494934
测试2
以一个包含1000000个元素的数组做为原始数据,分别以json, serialize, igbinary进行序列化和反向操作。
代码如下 | 复制代码 |
ini_set('memory_limit', '512m'); $start = microtime(true); $start = microtime(true); $start = microtime(true); $start = microtime(true); $start = microtime(true); $start = microtime(true); |
测试结果
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又被甩了几条街
结论,
如果只是英文和数字,元素比较平均,则推荐json,体积和效率均优于序列化
如果只是英文和数字,个别元素较大,则推荐serialize效率优于序列化
如果中文,元素较少,推荐序列化,体积和效率均优于json
如果中文,元素比较平均,推荐json
如果是缓存业务,效率越高越好,如果是缓存数据,体积越小越好。也要看具体的场景。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔