12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/usr/bin/perl
- use strict;
- my $size = 0;
- my $who = '';
- my $mode = '';
- my %res = ();
- my $offlinebytes = 0;
- while(<>) {
- $size = "$1|$2" if /===== Running oram (\d+) (\d+)/;
- $res{$size} = {} unless defined $res{$size};
- $who = $1 if /===== ([CDE]) output/;
- $mode = $1 if /(Online Time|Offline Time|ETE)/;
- if(/WC\(ms\): (\d+)/) {
- if (defined $res{$size}->{$who.$mode}) {
- print "Redefinition of res{$size}->{$who$mode}\n";
- } else {
- $res{$size}->{$who.$mode} = $1/1000
- }
- }
- if (/Total Offline Band\(bytes\): (\d+)/) {
- $offlinebytes = $1;
- }
- if (/Total Online Band\(bytes\): (\d+)/) {
- my $onlinebytes = $1;
- my $totbytes = $onlinebytes + $offlinebytes;
- $res{$size}->{'onlbytes'} = 0 unless
- defined $res{$size}->{'onlbytes'};
- $res{$size}->{'totbytes'} = 0 unless
- defined $res{$size}->{'totbytes'};
- $res{$size}->{'onlbytes'} += $onlinebytes;
- $res{$size}->{'totbytes'} += $totbytes;
- }
- }
- sub max3 {
- my $m = $_[0];
- $m = $_[1] if $_[1] > $m;
- $m = $_[2] if $_[2] > $m;
- $m;
- }
- print "|size|iters|online_secs|total_secs|online_secs_per_iter|total_secs_per_iter|\n";
- print "|----|-----|-----------|----------|--------------------|-------------------|\n";
- foreach $size (sort keys %res) {
- my $iters = $1 if $size =~ /\|(\d+)/;
- my $online = &max3($res{$size}->{'COnline Time'},
- $res{$size}->{'DOnline Time'},
- $res{$size}->{'EOnline Time'});
- my $total = &max3($res{$size}->{'CETE'},
- $res{$size}->{'DETE'},
- $res{$size}->{'EETE'});
- print "|$size|$online|$total|", $online/$iters, "|", $total/$iters, "|\n";
- }
- print "\n";
- print "|size|iters|online_3P_bytes|total_3P_bytes|online_3P_bytes_per_iter|total_3P_bytes_per_iter|\n";
- print "|----|-----|---------------|--------------|------------------------|-----------------------|\n";
- foreach $size (sort keys %res) {
- my $iters = $1 if $size =~ /\|(\d+)/;
- my $online = $res{$size}->{'onlbytes'};
- my $total = $res{$size}->{'totbytes'};
- print "|$size|$online|$total|", $online/$iters, "|", $total/$iters, "|\n";
- }
|