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