tfrc.pl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #!/usr/bin/perl -w
  2. use strict 'refs';
  3. use strict 'subs';
  4. if ($#ARGV != 3) {
  5.   &usage;
  6.   exit;
  7. }
  8. sub usage {
  9.   print STDERR " usage: $0 <pattern> <0|1> <time> <noTries>n";
  10.   exit;
  11. }
  12. my $bit = $ARGV[1];
  13. my $time = $ARGV[2] - 10;
  14. my $tries = $ARGV[3];
  15. my @listOfFiles = ();
  16. for ($tryNo=1; $tryNo <= $tries; $tryNo++) { 
  17.   my @a = <$ARGV[0]-$tryNo-*>;
  18.   
  19.   foreach $file (@a) {
  20. my ($pre1, $try, $suffix) = split(/-/,$file);
  21. my $i = $suffix;
  22. print STDERR "Doing $file tmp$bit-$tryNo-$suffixn";
  23. my $command1 = "grep curr tmp$bit-$tryNo-$suffix | awk '{sum1+=$11; sum2+=$13} END {print $i, (sum1/sum2)*100}' >> dropRate$bit-$tryNo";
  24. # print "$command1", "n";
  25. system($command1);
  26. my $command2 = "awk 'BEGIN {k=$i} {if ($4!=0 && $2==$time) if ($4<=k/2) {if ($4%2!=0) tfrc1+=$6; else tcp1+=$6} else if ($4%2!=0) tfrc2+=$6; else tcp2+=$6} END {div = $time*1000000.0; print $i, tfrc1/tcp1, tfrc2/tcp2, tfrc1/div, tcp1/div, tfrc2/div, tcp2/div}' $file >> data$bit-$tryNo";
  27. # print "$command2", "n";
  28. system($command2);  
  29.   }
  30.   system("sort -n +0 -1 data$bit-$tryNo -o data$bit-$tryNo");
  31.   system("sort -n +0 -1 dropRate$bit-$tryNo -o dropRate$bit-$tryNo");   
  32.   push(@listOfFiles,"data$bit-$tryNo");
  33. }
  34. my $cmd = "awk '{n1[$1]+=$2; n2[$1]+=$3; tf1[$1]+=$4; tc1[$1]+=$5; tf2[$1]+=$6; tc2[$1]+=$7} END {for (i=4; i<=40; i+=4)  if (i in n1) print i, n1[i]/$tries, n2[i]/$tries, tf1[i]/$tries, tc1[i]/$tries, tf2[i]/$tries, tc2[i]/$tries}' @listOfFiles > data.$bit";
  35. #print "$cmdn";
  36. system($cmd);