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