![Rank: 9](images/default/star_level3.gif) ![Rank: 9](images/default/star_level3.gif) ![Rank: 9](images/default/star_level1.gif)
- UID
- 1
- 威望
- 1240 点
- 金钱
- 10002 金币
- 点卡
- 317 点
|
1#
发表于 2003-8-10 15:26
| 只看该作者
[转帖]行方式读与数组方式读之比较
先看看这个再看看下面的:
http://com2008.51.net/cgi-bin/bbs/cgi-bin/topic.cgi?forum=23&topic=25&show=0
测试数据:list.cgi,大约8000行,文件大小:500KB
测试程序1是采用了行方式读,而测试程序2是采用了数组方式读。
测试程序1:test1.cgi
#!/usr/bin/perl
use CGI;
use Benchmark;
$TT0 = new Benchmark;
print "Content-type: text/html\n\n";
$/="";
open (FILES, "list.cgi");
$reads=<FILES>;
close(FILES);
$/="\n";
@reads=split ( /\n/,$reads);
foreach (@reads){
print $_;
}
###########################
print"<hr>";
$TT1 = new Benchmark;
$td = Benchmark::timediff($TT1, $TT0);
$td = Benchmark::timestr($td);
$td =~ /(\d+)\s*wallclock secs \(\s*?(\d*?\.\d*?)\s*usr\s*\+\s*(\d*?\.\d*?)\s*sys/i;
my $alltimas=($2+$3)*1000;
print "<center><font color=$cpudispcolor>程序占用 CPU 时间:$2 usr + $3 sys 合计运行时间 $alltimas 毫秒";
exit;
测试程序2:
#!/usr/bin/perl
use CGI;
use Benchmark;
$TT0 = new Benchmark;
print "Content-type: text/html\n\n";
open (FILES, "list.cgi");
@reads=<FILES>;
close(FILES);
foreach (@reads){
print $_;
}
###########################
print"<hr>";
$TT1 = new Benchmark;
$td = Benchmark::timediff($TT1, $TT0);
$td = Benchmark::timestr($td);
$td =~ /(\d+)\s*wallclock secs \(\s*?(\d*?\.\d*?)\s*usr\s*\+\s*(\d*?\.\d*?)\s*sys/i;
my $alltimas=($2+$3)*1000;
print "<center><font color=$cpudispcolor>程序占用 CPU 时间:$2 usr + $3 sys 合计运行时间 $alltimas 毫秒";
exit;
|
我是一个呼吸着现在的空气而生活在过去的人
这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
我已习惯了孤独,爱上孤独
他让我看清了自我,还原了自我
让我再静静的沉思中得到快乐和满足
再孤独的世界里我一遍又一遍
不厌其烦的改写着自己的过去
延伸到现在与未来
然而那只是泡沫般的美梦
产生的时刻又伴随着破灭的到来
在灰飞烟灭的瞬间我看到的是过程的美丽
而不是结果的悲哀。。。
|
|