parse_output 809 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/perl
  2. use strict;
  3. my $size = 0;
  4. my $who = '';
  5. my $mode = '';
  6. my %res = ();
  7. while(<>) {
  8. $size = $1 if /===== Running oram (\d+) 128/;
  9. $res{$size} = {} unless defined $res{$size};
  10. $who = $1 if /===== ([CDE]) output/;
  11. $mode = $1 if /(Online Time|ETE)/;
  12. $res{$size}->{$who.$mode} = $1/1000 if /WC\(ms\): (\d+)/;
  13. }
  14. sub max3 {
  15. my $m = $_[0];
  16. $m = $_[1] if $_[1] > $m;
  17. $m = $_[2] if $_[2] > $m;
  18. $m;
  19. }
  20. print "#size online_secs total_secs\n";
  21. foreach $size (sort {$a <=> $b} keys %res) {
  22. my $online = &max3($res{$size}->{'COnline Time'},
  23. $res{$size}->{'DOnline Time'},
  24. $res{$size}->{'EOnline Time'});
  25. my $total = &max3($res{$size}->{'CETE'},
  26. $res{$size}->{'DETE'},
  27. $res{$size}->{'EETE'});
  28. print "$size $online $total\n";
  29. }