php json_decoding 与 xml 解析

发布于 2024-10-04 19:42:11 字数 22 浏览 2 评论 0原文

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

What's faster? Any thoguhts/benchmarks?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明媚如初 2024-10-11 19:42:11

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 的理论上的优势。

json_decode() is faster. No discussion. However the margin can only be benchmarked on a specific XML document type. XML-RPC marshalling isn't that far off from JSON e.g. But anyway, you have to decide on what kind of data you want to transfer or save:

JSON is suitable for representation of scalar data types, and arrays or objects.

XML is foremost a document format family. You can use it to serialize data types from any programming language; but that's not its purpose. Think of XML as document micro databases.

So really it is an apples to books comparison.


@StaxMan: unscientific proof follows. Note how this example is already skewed in favour of JSON by using a suboptimal pseudo datastructure.

$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;
}

Result:

json 1.6152667999268
xml 2.9058270454407

Again, very nothingsaying. But it's a theoretic advantage for JSON.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文