perl-记要程序后台运行时间

perl-记录程序后台运行时间
perl-记录程序后台运行时间


今天遇到一个问题:如何记录HDecode解码时间,HDecode解码时间很长,需要在后台运行,即如何记录HDecode在后台运行时间?

我测试的指令为:
1.{ time nohup perl do_HDecode_3011_test_0101_0120.pl; } 2> do_HDecode_3011_test_0101_0120_time.log&

但是这个指令可以没有成功。

2.{ time  perl do_HDecode_3011_test_0101_0120.pl; } 2> do_HDecode_3011_test_0101_0120_time.log

这个指令可以运行,但是不能后台运行。

3.最后利用在perl程序里加入时间来测量程序运行时间
   思想:记录指令开始的时间T1
        指令
         记录指令结束的时间T2
        最后的时间为T2-T1

  代码如下:
unless (open (MYFILE,">do_HDecode_3011_test_0101_0120_time.log")){
           die ("Can't open the file $!\n");
}
my $begin_time = time() ;#记录开始的时间T1
system ( $HDecode_cmd ); #这是要运行的指令
my $end_time = time();#记录结束的时间T2
my $final_time = $end_time - $begin_time;
print MYFILE "The final_time is : $final_time";
close(MYFILE);


这个指令可以后台运行:
比如:
nohup perl do_HDecode_3011_test_0101_37269.pl > nohup_do_HDecode_3011_test_0101_37269.log&
则可以后台运行。