7

私は 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
4

3 に答える 3

10

JSON は「軽量」な形式であるため、サーバーへの負荷がわずかに少ないと予想されますが、サイトの人気が高まるにつれて対処する最大のパフォーマンスの問題になるとは思えません。使いやすい形式を使用してください。

または、データをどのように構造化するかがわかっている場合は、XML 形式のバージョンと JSON 形式のバージョンを作成して、セットアップに対して数十万回実行して、顕著な違いが生じるかどうかを確認することもできます。

于 2008-10-17T23:13:44.843 に答える
3

データを使用するアプリケーションでサーバー上でどちらがより簡単になるかを判断する方法は 1 つしかありません。

試して!

あなたが翻訳しようとしているものに似たデータを生成し、単体テスト フレームワークの 1 つを使用して、SimpleXML と json_decode のそれぞれを使用して数千回デコードし、意味のある結果を得るのに十分です。そして、何がうまくいったかを教えてください。

申し訳ありませんが、これはまさにあなたが探していた種類の答えではありませんが、実際には、これが唯一の正しい方法です。幸運を!

于 2008-10-18T01:11:59.537 に答える
3

質問に対する答えではありませんが、多くのユーザーがシステムにアクセスするまで待つことができます。ボトルネックが実際にどこにあるかに驚くかもしれません。

http://gettingreal.37signals.com/ch04_Scale_Later.php

于 2008-10-19T13:00:11.427 に答える