关于操作文件效率问题

hqaht 2008-03-25 09:58:26
我有上百万的数据 但是总的数据量不是很大 一万条数据生成一个文件 并压缩 我生成第一个一万数据的文件时是用时3秒 但是第二个文件的数据就用时3.5秒 依次的循环生成的时候 到最后生成一万条数据的时候很慢 源码如下

while($start<$end)
{

$content1="";
mt_srand((double)microtime()*10000000);
$sim1=mt_rand(7,24);
$sim2=mt_rand(0,60);
$sim3=mt_rand(0,60);
$sim4=mt_rand(1,7);
$dd=mktime ($sim1,$sim2,$sim3,date("m"),date("d")-$sim4, date("Y"));
switch ($mulu_name){
case 'book':
$id = mysql_result($result,$start,'group_id');
$d_id = mysql_result($result,$start,'d_id');
$d_attribute = mysql_result($result,$start,'d_attribute');
break;
case 'product':
$id=mysql_result($result,$start);
break;
case 'news':
$id = mysql_result($result,$start,'id');
$url1 = mysql_result($result,$start,'url');
$date_sql = mysql_result($result,$start,'date');
$date = date('Ymd',$date_sql);
break;
case 'space':
$id=mysql_result($result,$start);
break;
default:
break;
}

if($id==''){
continue;
} else{
$start++;
}

$start++;
if($start>$maxid)
{
break;
}

$url=switch_article_url($mulu_name,$website,$id,$d_id,$d_attribute,$url1,$date);


$web=utf8_encode($url);
$last=utf8_encode(date("Y-m-d\TH:i:s",$dd). substr(date("O"),0,3) . ":" . substr(date("O"),3));
$change=utf8_encode($changefreq);
$prio=utf8_encode($priority);
$content1.="
<url>
<loc>{web}</loc>
<lastmod>{last}</lastmod>
<changefreq>{change}</changefreq>
<priority>{prio}</priority>
</url>";
$content1=str_replace("{web}",$web,$content1);
$content1=str_replace("{last}",$last,$content1);
$content1=str_replace("{change}",$change,$content1);
$content1=str_replace("{prio}",$prio,$content1);
// }
$content1=DealString($content1);


//这个时候写的时候 主要时间耽误在这里
fwrite($fp,$content1);

}

...全文
72 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧