parse_logs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/perl
  2. use strict;
  3. my $size = 0;
  4. my $who = '';
  5. my $mode = '';
  6. my %res = ();
  7. my $offlinebytes = 0;
  8. my $netsetup = '';
  9. while(<>) {
  10. if (/Network setup: (.*)/) {
  11. $netsetup = "$1 ";
  12. next;
  13. }
  14. $size = "$1|$2" if /===== Running oram (\d+) (\d+)/;
  15. $res{$size} = {} unless defined $res{$size};
  16. $who = $1 if /===== ([CDE]) output/;
  17. $mode = $1 if /(Online Time|Offline Time|ETE)/;
  18. if(/WC\(ms\): (\d+)/) {
  19. if (defined $res{$size}->{$who.$mode}) {
  20. print "Redefinition of res{$size}->{$who$mode}\n";
  21. } else {
  22. $res{$size}->{$who.$mode} = $1/1000
  23. }
  24. }
  25. if (/Total Offline Band\(bytes\): (\d+)/) {
  26. $offlinebytes = $1;
  27. }
  28. if (/Total Online Band\(bytes\): (\d+)/) {
  29. # Note that the java code reports bandwidth *per iteration*
  30. my $onlinebytes = $1;
  31. my $totbytes = $onlinebytes + $offlinebytes;
  32. $res{$size}->{'onlbytes'} = 0 unless
  33. defined $res{$size}->{'onlbytes'};
  34. $res{$size}->{'totbytes'} = 0 unless
  35. defined $res{$size}->{'totbytes'};
  36. $res{$size}->{'onlbytes'} += $onlinebytes;
  37. $res{$size}->{'totbytes'} += $totbytes;
  38. }
  39. }
  40. sub max3 {
  41. my $m = $_[0];
  42. $m = $_[1] if $_[1] > $m;
  43. $m = $_[2] if $_[2] > $m;
  44. $m;
  45. }
  46. foreach $size (sort keys %res) {
  47. my $iters = $1 if $size =~ /\|(\d+)/;
  48. my $online = &max3($res{$size}->{'COnline Time'},
  49. $res{$size}->{'DOnline Time'},
  50. $res{$size}->{'EOnline Time'});
  51. my $total = &max3($res{$size}->{'CETE'},
  52. $res{$size}->{'DETE'},
  53. $res{$size}->{'EETE'});
  54. print "CircuitORAMOnline read $size $netsetup$online s\n";
  55. print "CircuitORAMTotal read $size $netsetup$total s\n";
  56. }
  57. print "\n";
  58. foreach $size (sort keys %res) {
  59. # Note that the java code reports bandwidth *per iteration*
  60. my $iters = $1 if $size =~ /\|(\d+)/;
  61. my $online = $res{$size}->{'onlbytes'} * $iters;
  62. my $total = $res{$size}->{'totbytes'} * $iters;
  63. print "CircuitORAMOnline read $size $netsetup$online KiB\n";
  64. print "CircuitORAMTotal read $size $netsetup$total KiB\n";
  65. }