最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中3種生成XML文件方法的速度效率比較

 更新時間:2012年10月06日 12:46:35   作者:  
實測結果不出所料,直接寫最快,耗時只有其他方式的1/3左右. 而其他2種方法差不多,相比之下SimpleXML要快一些
PHP中3種生成XML文件方法的速度比較
有3種方法,分別是直接寫;使用DomDocument;使用SimpleXML;
其實還有第4種:使用XMLWriter,不過我沒用過,也懶得試了.
主要是想看看這3種方式哪個速度要快些
直接上代碼:

復制代碼 代碼如下:

private function directWriteXml(&$data){
  $xmltext='<?xml version="1.0" encoding="UTF-8" ?>';
  $xmltext .='<DocumentData>';
  $xmltext .='<Detail>';
  $loop=count($data);
  foreach ($data as $d){
   $xmltext .=" <Row ID=\" {$d['id']} \"  Name=\" {$d['name']}\" />";
  }
  $xmltext .='</Detail>';
  $xmltext .='</DocumentData>';
  return $xmltext;
 }
 private function useDomDocument(&$data){
  //  創(chuàng)建一個XML文檔并設置XML版本和編碼。。
  $dom=new DomDocument('1.0', 'utf-8');
  //  創(chuàng)建根節(jié)點
  $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){
  //  創(chuàng)建一個XML文檔并設置XML版本和編碼。。
  $string = <<<XML
<?xml version='1.0' encoding='utf-8'?>
<detail01>
</detail01>
XML;
  $xml = simplexml_load_string($string);
  foreach ($data as $d) {
      $xml->addChild('Row'," ID=\" {$d['id']} \"  Name=\" {$d['name']}\" " );
  }
  return $xml->asXML(); ;
 }

調用時每個都加上大數循環(huán)操作,并記錄時間
復制代碼 代碼如下:

 $loop=10000;
  $xml='';
  switch($_GET['id']){
   case 1:
     $ts=$this->microtime_float();
     for( $i=0; $i<$loop; $i++)
      $xml=$this->directWriteXml($depdata);
     $te=$this->microtime_float();
     $t=$te-$ts;
     $this->assign('times',$t);
     $this->assign('method','直接寫');
     break;
   case 2:
     $ts=$this->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');
     break;
   case 3:
     $ts=$this->microtime_float();
     for( $i=0; $i<$loop; $i++)
      $xml=$this->useSimpleXML($depdata);
     $te=$this->microtime_float();
     $t=$te-$ts;
     $this->assign('times',$t);
     $this->assign('method','SimpleXML');
     break;
  }
  echo $xml;

實測結果不出所料,直接寫最快,耗時只有其他方式的1/3左右. 而其他2種方法差不多,相比之下SimpleXML要快一些.

相關文章

  • 詳解PHP的Yii框架中的Controller控制器

    詳解PHP的Yii框架中的Controller控制器

    這篇文章主要介紹了PHP的Yii框架中的Controller控制器,Yii作為MVC框架,其控制器部分的使用自然是重中之重,需要的朋友可以參考下
    2016-03-03
  • 如何用PHP實現多線程編程

    如何用PHP實現多線程編程

    原以為 PHP 普遍都是單線程模型,并不適合多線程領域,發(fā)現PHP的多線程也頗有可取之處,用來解決某些問題竟然非常適合。本文對比多進程介紹了下多線程的優(yōu)勢和適用場景,提出了一種巧用方案,并使用PHP代碼實現了多線程的常見用法。
    2021-05-05
  • 推薦十款免費 WordPress 插件

    推薦十款免費 WordPress 插件

    本文給大家介紹的是今年必備的10款WordPress插件,非常的實用,包含WordPress SEO By Yoast,Akismet,W3 Total Cache,Disqus Comment System,Google Sitemap Generator,Jetpack,Limit Login Attempts,Contact Form 7,Yet Another Related Posts Plugin等
    2015-03-03
  • PHP移動文件指針ftell()、fseek()、rewind()函數總結

    PHP移動文件指針ftell()、fseek()、rewind()函數總結

    這篇文章主要介紹了PHP移動文件指針ftell()、fseek()、rewind()函數總結,本文先是對它們的作用做了講解,然后給出具體使用例子,需要的朋友可以參考下
    2014-11-11
  • PHP vsprintf()函數格式化字符串操作原理解析

    PHP vsprintf()函數格式化字符串操作原理解析

    這篇文章主要介紹了PHP vsprintf()函數格式化字符串操作原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 解析PHP觀察者模式Observer

    解析PHP觀察者模式Observer

    Observer,首先要有一個被觀察的角色,但它是【唯一的】。雖然"表演者"只有一個但是"觀眾"有很多,既一群"人"圍觀一個"人"。既然有無數個觀察者,那么我們需要知道都有哪一些"人"。所以我們需要一個“容器”來記錄這些"人",一個類似于數組一樣來儲存所有觀察者的容器。
    2021-05-05
  • php圖像處理類實例

    php圖像處理類實例

    這篇文章主要介紹了php圖像處理類,涉及php操作圖片的大小修改、加水印、生成驗證碼、輸出及保存圖像的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • PHP中的生成XML文件的4種方法分享

    PHP中的生成XML文件的4種方法分享

    PHP中的生成XML文件的4種方法分享,需要的朋友可以參考下
    2012-10-10
  • Highcharts?圖表中圖例顯示狀態(tài)存儲的功能設計詳解

    Highcharts?圖表中圖例顯示狀態(tài)存儲的功能設計詳解

    這篇文章主要介紹了Highcharts?圖表中圖例顯示狀態(tài)存儲的功能設計詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論

安阳县| 福海县| 当雄县| 浪卡子县| 平武县| 兴海县| 汾阳市| 柳林县| 葫芦岛市| 太湖县| 洪泽县| 双城市| 抚松县| 潜山县| 邯郸县| 花莲县| 新晃| 城步| 贵阳市| 商水县| 阿尔山市| 五峰| 镇康县| 望谟县| 泰宁县| 精河县| 武陟县| 阿图什市| 志丹县| 连江县| 盈江县| 靖宇县| 梁山县| 孟村| 西乌珠穆沁旗| 互助| 内乡县| 瑞丽市| 吕梁市| 三门县| 湘潭县|