ホームページ  >  記事  >  php教程  >  PHP で XML ファイルを生成する 3 つの方法の速度と効率の比較

PHP で XML ファイルを生成する 3 つの方法の速度と効率の比較

WBOY
WBOYオリジナル
2016-06-13 11:57:33830ブラウズ

PHP で XML ファイルを生成する 3 つの方法の速度の比較
3 つの方法があります。つまり、DomDocument を使用する方法と、SimpleXML を使用する方法です。
実際には、XMLWriter を使用する方法があります。
主に 3 つの方法のどれが速いかを確認したいです
コードを直接入力します:

コードをコピーします コードは次のとおりです:


プライベート関数 directWriteXml(&$data){
$xmltext='';
$xmltext .='';
$xmltext .='';
$loop=count($data );
foreach ($data as $d ){
$xmltext .=" ";
}
$xmltext .='
';
$xmltext .='
';
return $xmltext;
}
private function useDomDocument(&$data) {
// XML ドキュメントを作成し、XML バージョンとエンコーディングを設定します。 。
$dom=new DomDocument('1.0', 'utf-8');
// ルートノードを作成します
$detail01 = $dom->createElement('Detail');
$ dom->appendchild($detail01);
foreach ($data as $d) {
$row = $dom->createElement('Row'," ID=" {$d['id' ]} " Name=" {$d['name']}" " );
$detail01->appendchild($row);
}
return $dom->saveXML();
}
private function useSimpleXML(&$data){
// XML ドキュメントを作成し、XML バージョンとエンコーディングを設定します。 。
$string = <<


XML;
$xml = simplexml_load_string($string);
foreach ($data as $d) {
$xml->addChild('Row'," ID= {$d ['id']} " Name=" {$d['name']}" " );
}
return $xml->asXML() ;
}

各呼び出しに多数のループ操作を追加し、時間を記録します

コードをコピーします コードは次のとおりです:

$loop=10000;
$xml='';
switch($_GET['id']){
ケース 1:
$ts=$this->microtime_float ();
for( $i=0; $i $xml=$this->directWriteXml($depdata);
$te=$this-> microtime_float() ;
$t=$te-$ts;
$this->assign('times',$t);
$this->assign('method','write直接') ;
ブレーク;
ケース 2:
$ts=$this->microtime_float();
for( $i=0; $i $ xml=$this->useDomDocument($depdata);
$te=$this->gt;microtime_float();
$t=$te-$ts;
$this-> ;assign( 'times',$t);
$this->assign('method','DomDocument');
Break;
ケース 3:
$ts=$this- >microtime_float ();
for( $i=0; $i $xml=$this->useSimpleXML($depdata);
$te=$this -> microtime_float();
$t=$te-$ts;
$this->assign('times',$t);
$this->assign('メソッド' ,'SimpleXML ');
Break;
}
echo $xml;

実際のテスト結果は予想通りで、直接書き込みが最も速く、消費時間は他の 2 つのメソッドはほぼ 1/3 しか機能せず、比較すると SimpleXML の方が高速です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。