Guest User

Untitled

a guest
Aug 15th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import re
  4. import sys
  5.  
  6. def parse(path):
  7. counts = {}
  8. sizes = {}
  9. for l in file(path):
  10. if ':' not in l:
  11. # skip header lines
  12. continue
  13. try:
  14. rank, count, size, clazz = re.split(r'\s+', l.strip())
  15. except:
  16. raise Exception("bad line: %s" % l)
  17.  
  18. counts[clazz] = int(count)
  19. sizes[clazz] = int(size)
  20. return counts, sizes
  21.  
  22. def print_diff(before, after):
  23. all_keys = set(before.keys()).union(after.keys())
  24. diffs = []
  25. for clazz in all_keys:
  26. diffs.append((clazz, after.get(clazz, 0) - before.get(clazz, 0)))
  27. diffs.sort(key=lambda x: x[1])
  28. for clazz, diff in diffs:
  29. print "%s: %d -> %d (%s%d)" % (
  30. clazz, before.get(clazz, 0), after.get(clazz, 0),
  31. diff > 0 and '+' or '',
  32. diff)
  33.  
  34.  
  35. before_counts, before_sizes = parse(sys.argv[1])
  36. after_counts, after_sizes = parse(sys.argv[2])
  37. print "count diffs:"
  38. print "-" * 70
  39. print_diff(before_counts, after_counts)
  40. print "size diffs:"
  41. print "-" * 70
  42. print_diff(before_sizes, after_sizes)
Add Comment
Please, Sign In to add comment