ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで XML ファイルを生成する 3 つの方法の速度と効率の比較

PHP_PHP チュートリアルで XML ファイルを生成する 3 つの方法の速度と効率の比較

WBOY
WBOYオリジナル
2016-07-21 15:15:44856ブラウズ

PHP で XML ファイルを生成する 3 つの方法の速度の比較
直接書き込む方法、DomDocument を使用する方法、SimpleXML を使用する方法があります。
実際には 4 つ目の方法があります: XMLWriter を使用する方法ですが、私はこれを使用したことがありません。試すのが面倒です
重要なのは、3 つの方法のうちどれが速いかを確認することです
コードに直接移動します:

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

private function directWriteXml( &$data){
$xmltext='< ;?xml version="1.0" encoder="UTF-8" ?>';
$xmltext .='';
$xmltext .='< ;詳細>';
$loop=count( $data);
foreach ($data as $d){
$xmltext .=" " // XML ドキュメントを作成し、XML バージョンとエンコーディングを設定します。 。
$dom=new DomDocument('1.0', 'utf-8');
// ルートノードを作成します
$detail01 = $dom->createElement('Detail');
$dom->appendchild($詳細01 );
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;
$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']){ case 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('メソッド','直接書き込む') ;microtime_float();
for( $i=0; $i< ;$loop; $i++)
$xml=$this->useDomDocument($depdata);
$te=$this->microtime_float();
$t=$te-$ts;
$this-> ;assign('times',$t);
$this->assign('method','DomDocument');
$ts=$this->microtime_float();
this->microtime_float();
$t=$te-$ts;
$this->assign('times',$t);
$this->assign('method','SimpleXML') ;
Break;
}
echo $xml;


実際のテスト結果は予想どおりで、直接書き込みが最も速く、所要時間は他の 2 つの方法の約 1/3 のみであり、比較すると SimpleXML の方が高速です。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326072.html技術記事 PHP で XML ファイルを生成する速度を比較するには、DomDocument を使用する方法と、SimpleXML を使用する方法の 3 つがあります。実際には、XMLWriter を使用する方法がありますが、私はこれを使用したことがなく、試すのが面倒です。それは...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。