+ -
当前位置:首页 → 问答吧 → PERL文件监控导至CPU很高

PERL文件监控导至CPU很高

时间:2011-06-24

来源:互联网

代码如下:

open (tlog,"<c:\\tlog1.log") or die $!;
while(1){
  my $in = <tlog>;
  print $in;
}

winodws XP 操作系统 .CPU:1.83GHz
只有一运行以上代码,CPU就马上增长到50%以上,
我是双核CPU,基本上可以看到其中一核已全部占完。


请问,有没有更好的方法啊,这CPU也太高了

作者: xuebao_zx   发布时间: 2011-06-24

OK.问题已解决,参考了别人的脚本。

在while循环的最后加sleep 1;
OK..  运行时CPU很低。

作者: xuebao_zx   发布时间: 2011-06-24

  1. open (tlog,"<c:\\tlog1.log") or die $!;
  2. while(1){
  3.   my $in = <tlog>;
  4.   print $in;
  5. }
复制代码


你这个可谓经典代码了,它首先是个crazy loop,CPU不涨才怪。。
为什么不正儿八经写呢?

  1. open my $tlog,"<","xxx.file" or die $!;
  2. while(<$tlog>) {
  3.     print;
  4. }
  5. close $tlog;
复制代码

作者: 兰花仙子   发布时间: 2011-06-24

大日志文件读的太快了CPU内存吃不消

Perl 还有个很好的函数seek你可以试试,一次读指定字节

作者: newstudent2011   发布时间: 2011-06-24

所谓的文件监控就是打印出来么?

作者: mysqllog   发布时间: 2011-06-24

回复 newstudent2011


   
    靠,注册时间够新的...

作者: mysqllog   发布时间: 2011-06-24