parse_logs 2.1 KB

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