2010年4月1日星期四

Re: [PerlChina] time函数在cygwin下面有bug?

是不是因为stat() 把$atime覆盖了?

On Thu, 1 Apr 2010 16:38:24 +0800
Achilles Xu <formalin14@gmail.com> wrote:

> 测试代码:
>
>
> use LWP::Simple qw(getstore $ua);
>
> my @urls = (
> "http://london1.linode.com/100MB-london.bin",
> "http://newark1.linode.com/100MB-newark.bin",
> "http://atlanta1.linode.com/100MB-atlanta.bin",
> "http://dallas1.linode.com/100MB-dallas.bin",
> "http://fremont1.linode.com/100MB-fremont.bin"
> );
>
> my $timeout = 120;
> $ua->default_header('Range' => 'bytes=0-1000000');
> for my $url (@urls) {
> my ($file) = $url =~ m{/([^/]+)$};
> my $atime = time;
> eval {
> local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n
> required
>
> alarm $timeout;
> my $cmd = "wget $url";
> print "downloading $url $file\n";
> getstore($url, $file);
>
> alarm 0;
> };
> my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
> $atime,$mtime,$ctime,$blksize,$blocks)
> = stat($file);
> my $btime = time;
> print $btime, "\t", $atime, "\n";
> print $url, "\t" . ($size/1000/($btime - $atime)) . "\n";
> if ($@) {
> die unless $@ eq "alarm\n"; # propagate unexpected
> errors
>
> # timed
> out
>
> }
> else {
> #
> didn't
>
> }
> }
>
> 下载文件会需要几秒,但是几秒过去了,atime和btime是一样的,导致后面报出除0错误。
>
> 普通笔记本,联想的,intel t4400。
>
> 等会试试Time::HiRes有没有问题。
>
> --
> ---------------------------
> Achilles Xu
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>


--
---

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

没有评论: