找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1560|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 08:27:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            PHP中3种生成XML文件方法的速度比较
有3种方法,分别是直接写;使用DomDocument;使用SimpleXML;
其实还有第4种:使用XMLWriter,不过我没用过,也懒得试了.
主要是想看看这3种方式哪个速度要快些
直接上代码:
[U]复制代码[/U] 代码如下:
private function 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(); ;
}
调用时每个都加上大数循环操作,并记录时间
[U]复制代码[/U] 代码如下:
$loop=10000;
  $xml='';
  switch($_GET['id']){
   case 1:
     $ts=$this->microtime_float();
     for( $i=0; $idirectWriteXml($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; $iuseDomDocument($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; $iuseSimpleXML($depdata);
     $te=$this->microtime_float();
     $t=$te-$ts;
     $this->assign('times',$t);
     $this->assign('method','SimpleXML');
     break;
  }
  echo $xml;
实测结果不出所料,直接写最快,耗时只有其他方式的1/3左右. 而其他2种方法差不多,相比之下SimpleXML要快一些.
            
            
您可能感兴趣的文章:
  • PHP的单引号和双引号 字符串效率
  • php程序效率优化的一些策略小结
  • php include加载文件两种方式效率比较
  • php中读写文件与读写数据库的效率比较分享
  • PHP 字符串长度判断效率更高的方法
  • PHP遍历数组的三种方法及效率对比分析
  • 关于php几种字符串连接的效率比较(详解)
  • PHP静态延迟绑定和普通静态效率的对比
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端