私は PHP で Web アプリケーションの開発を始めています。このアプリケーションが信じられないほどの人気を得て、有名になり、金持ちになることを願っています。:-)
その時が来たら、API のデータを SimpleXML で XML として解析するか、json_decode を使用するかの私の決定は、アプリのスケーラビリティーに違いをもたらす可能性があります。
これらのアプローチのどれがサーバーにとってより効率的か知っている人はいますか?
更新:基本的なテストを実行して、どちらの方法がよりパフォーマンスが高いかを確認しました。json_decode
の実行は よりわずかに速いようですsimplexml_load_string
。これは、並行プロセスのスケーラビリティなどをテストしていないため、決定的なものではありません。私の結論は、XPath 式がサポートされているため、当面は SimpleXML を使用するということです。
<?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