【问题标题】:php json_decoding vs xml parsingphp json_decoding vs xml解析
【发布时间】:2011-05-16 09:18:58
【问题描述】:

什么更快?有什么想法/基准吗?

【问题讨论】:

  • 那是比较苹果和橘子。如果有的话,问题应该是哪一个更适合 UseCase X?当要求基准时,为什么不自己做一些呢?
  • 同意Gordon,必须知道这个案子。但没有任何其他信息,我投票给 JSON。 ;)
  • When to prefer JSON over XML? 的可能重复项
  • 写“为什么不自己写”——同意,通过测试自己的用例可以获得最佳结果。但另一方面,可能存在由了解当前处理 XML 和 JSON 的最佳方法的专家编写的编写良好的基准;自己滚动会冒新手犯错误的风险。

标签: php xml xml-parsing json


【解决方案1】:

json_decode() 更快。没有讨论。但是,边距只能在特定的 XML 文档类型上进行基准测试。 XML-RPC 编组与 JSON 相差不远,例如但无论如何,您必须决定要传输或保存哪种数据:

JSON 适用于表示标量数据类型、数组或对象。

XML 主要是一个文档格式系列。您可以使用它来序列化来自任何编程语言的数据类型;但这不是它的目的。将 XML 视为文档微数据库。

所以真的是书本比较。


@StaxMan:接下来是不科学的证明。请注意,通过使用次优的伪数据结构,该示例已经偏向 JSON。

$json = <<<END
   [55, "text goes here", 0.1]
END;

$xml = <<<END
<array>
   <int>55</int>
   <string>text goes here</string>
   <float>0.1</float>
</array>
END;

for ($i=0,$t=t(); $i<100000; $i++) {
   json_decode($json);
}
echo "json ", t(-$t), "\n";

for ($i=0,$t=t(); $i<100000; $i++) {
   simplexml_load_string($xml);
}
echo "xml ", t(-$t), "\n";

function t($t1=0) {
   $a = explode(" ", microtime());
   return $a[0] + $a[1] + $t1;
}

结果:

json 1.6152667999268
xml 2.9058270454407

再次,非常无话可说。但这对 JSON 来说是理论上的优势。

【讨论】:

  • 任何证明的链接?我之所以这么问,是因为一些较早的问题指出了其他人提出不同结果的结果,而不是因为我对主张本身提出异议。
  • @StaxMan 我认为这是个人的冒犯,你质疑我做出令人发指的速度假设的权威。但无论如何,见上文。我猜大多数测试模式都会支持 JSON。如果您使用正确的 XMLSchema 数据类型,情况会更糟。
  • XML 解析不可能更快。它必须遍历整个 DOM 寻找 CDATA、属性和不同的节点类型。
  • 嘿,有一阵子我以为你受了重伤……我有时会慢慢摸索微妙复杂的幽默。 :) 对于它的价值,从理论上讲,更快的 JSON 解码确实很有意义;我只记得有人编写测试的其他问题并没有显示 JSON 明显更快(我认为是stackoverflow.com/questions/993282/…)。您的补充看起来不错并支持您的陈述。
  • Matt:我想说的是解析器速度(在类内,即最慢和最快的 xml 解析器,最慢/最快的 xml 解析器)之间的差异是巨大的——我已经编写了 xml 和 json 解析器(在 Java 中),可测量且最快的 xml 解析器轻松击败最慢的 xml 解析器;反方向也一样。优胜劣汰,是的,JSON 解析器略微领先,与输入大小大致相关。
猜你喜欢
  • 2012-08-11
  • 2010-10-05
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多