什么减少了PHP服务器的负载:SimpleXML或json_decode?

And*_*ges 7 php performance json scalability simplexml

我开始用PHP开发一个Web应用程序,我希望它会变得非常受欢迎并让我变得有名和丰富.:-)

如果到了这个时候,我决定是使用SimpleXML将API的数据解析为XML还是使用json_decode,这可能会对应用程序的可伸缩性产生影响.

有谁知道哪种方法对服务器更有效?

更新:我进行了一项初步测试,看看哪种方法效果更好.似乎json_decode执行速度略快于simplexml_load_string.这不是非常确定的,因为它不测试并发进程的可伸缩性之类的东西.我的结论是,我将暂时使用SimpleXML,因为它支持XPath表达式.

<?php

$xml  = file_get_contents('sample.xml');
$json = file_get_contents('sample.js');

$iters = 1000;

// simplexml_load_string
$start_xml = microtime(true);
for ($i = 0; $i < $iters; ++$i) {
    $obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
}
$end_xml = microtime(true);

// json_decode
$start_json = microtime(true);
for ($i = 0; $i < $iters; ++$i) {
    $obj = json_decode($json);
}
$end_json = microtime(true);

?>
<pre>XML elapsed: <?=sprintf('%.4f', ($end_xml - $start_xml))?></pre>
<pre>JSON elapsed: <?=sprintf('%.4f', ($end_json - $start_json))?></pre>
Run Code Online (Sandbox Code Playgroud)

结果:

XML elapsed: 9.9836
JSON elapsed: 8.3606
Run Code Online (Sandbox Code Playgroud)

Ran*_*ndy 10

作为"更轻"的格式,我希望JSON在服务器上的压力稍微小一些,但我怀疑它会成为你自己处理的最大性能问题,因为你的网站越来越受欢迎.使用您更熟悉的格式.

或者,如果您知道如何构建数据,则可以尝试制作XML格式的版本和JSON格式的版本,然后针对您的设置运行几十万次,看看它是否会产生明显的差异.