123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #!/usr/bin/perl
- use strict;
- my $size = 0;
- my $iters = 0;
- my $who = '';
- my $mode = '';
- my %res = ();
- my $offlinebytes = 0;
- my $netsetup = '';
- while(<>) {
- if (/Network setup: (.*)/) {
- $netsetup = "$1 ";
- next;
- }
- ($size,$iters) = ($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+)/) {
- # Note that the java code reports bandwidth *per iteration*
- 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;
- }
- if (/===== End /) {
- 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 "CircuitORAMOnln read $size $netsetup$online s\n";
- print "CircuitORAMTotl read $size $netsetup$total s\n";
- # Note that the java code reports bandwidth *per iteration*
- my $onlinekib = $res{$size}->{'onlbytes'} * $iters / 1024;
- my $totalkib = $res{$size}->{'totbytes'} * $iters / 1024;
- print "CircuitORAMOnln read $size $netsetup$onlinekib KiB\n";
- print "CircuitORAMTotl read $size $netsetup$totalkib KiB\n";
- undef $res{$size};
- }
- }
- sub max3 {
- my $m = $_[0];
- $m = $_[1] if $_[1] > $m;
- $m = $_[2] if $_[2] > $m;
- $m;
- }
|