我开始用 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>

结果:
XML elapsed: 9.9836
JSON elapsed: 8.3606

最佳答案

作为“轻量级”格式,我希望 JSON 对服务器的压力会稍微小一些,但我怀疑随着您的网站越来越受欢迎,这将是您发现自己处理的最大性能问题。使用您更喜欢的任何格式。

或者,如果您知道如何构建数据,您可以尝试制作一个 XML 格式的版本和一个 JSON 格式的版本,然后针对您的设置运行它几十万次,看看它是否有明显的不同。

关于php - 什么可以减轻 PHP 服务器的负载 : SimpleXML or json_decode?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/214143/

10-11 06:10