当前位置:  开发笔记 > 编程语言 > 正文

PHP:JSON或XML解析器更快吗?

如何解决《PHP:JSON或XML解析器更快吗?》经验,为你挑选了3个好方法。

我正在构建与Twitter API接口的类,我想知道PHP的内置XML或JSON解析器是否更快?Twitter将以任一格式向我发送相同的数据,因此PHP性能将决定我的选择.我正在使用php_apc,所以你可以忽略解析时间并假设我正在运行字节码.

谢谢!

更多:我只是想从数据中获取关联数组.我不是在做树行走,节点迭代或任何太复杂的事情.格式将始终相同.(我希望!)



1> 小智..:

亚当上面的评论说服我对它进行基准测试.使用https://twitter.com/status/mentions.[format],我发现simplexml_load_string()比json_decode()快得多.但差异实际上是一个误差范围.

Test #1 time (xml): 3.75221395493 seconds
Test #2 time (xml): 4.1562371254 seconds
Test #3 time (xml): 3.60420489311 seconds
Test #4 time (xml): 3.85622000694 seconds
Test #5 time (xml): 3.89622211456 seconds

Test #1 time (json): 4.53225803375 seconds
Test #2 time (json): 4.06823205948 seconds
Test #3 time (json): 4.03222990036 seconds
Test #4 time (json): 3.80421590805 seconds
Test #5 time (json): 3.88022208214 seconds

在下面的代码中(我已经将数据卷曲到文件,数据.[xml,json]).

Test #{$t} time ({$test}): " . ($end[$t] - $start[$t]). " seconds

"; }


但是,在加载后,此测试不会从XML对象读取数据.当json_decode返回一个简单的数组时,SimpleXML为一个对象提供了读取数据的特殊方法,包括一些动态魔法.这可能会影响性能.

2> e-satis..:

我没有做任何基准但是......

由于JSON只是嵌套字符串序列的描述,不需要提供DOM接口,属性解析和其他微妙的东西,我的猜测是JSON解析器比XML解析器更快.


呃.这些都不是正确的答案 - 正确的是"去衡量它".认真.我测量了性能,并且有很大的重叠 - 慢速json解析器比快速xml解析器慢,反之亦然.注意:XML _PARSING_是一个非常低级的东西,可以快速完成(同样适用于XML).DOM与解析无关; 它是一个树结构,可以选择构建低级令牌.对于完全可选的XML Schema也是如此.使用此类附加组件具有显着的性能影响(开销).如果需要对实际对象进行真正的数据绑定,则JSON add ons也是如此.
解析JSON格式比定义良好的XML复杂得多.解析字符串是一项非常复杂的工作,可能是因为您使用的是标准库函数,您感觉不到它,但解析结构化XML要比使用JSON构建的数据简单得多.
如果最初的回答者证明它错了,不知道为什么这是被接受的...
@mike - 关心与实际结果分享链接?

3> David Dixon..:

当json返回是一个对象时,我倾向于发现simplexml_load_string()比json_decode()更快.

但是,使用json_decode($ string,true)将json作为数组返回实际上比使用对象快得多(在将数组与对象进行比较时,大多数情况都是如此).

在这种情况下,我看到json_decode()的速度是simplexml_load_string()的两倍.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有