# vim: set ts=2 sw=2 et tw=80: # Sums the times instances spend in one of each states in the diagram saved as # "statuses.drawio". Unknown times are summed as "unknown" import json import sys # QUEUE = set(["0-2", "1-2", "assumptions:", "1-1", "1-0"]) # RESUB = set(["4-1", "4-0", "5-1", "6-1", "7-1", "8-1", "assumptions:", "5-0", "6-0", "7-0", \ # "8-0"]) # READY = set(["0-3", "2-3", "0-9", "2-9", "9-3", "2-7", "2-8", "9-7", "9-8", \ # "9-9", "0-7", "0-8", "assumptions:", "2-0", "2-4", "9-4", "9-1"]) # RUN = set(["3-1", "3-10", "3-4", "3-5", "3-6", "3-7", "3-8", "10-5", "10-6", \ # "10-7", "10-8", "10-4", "10-10", "10-1", "assumptions:", "3-0", "10-0", "3-3"]) QUEUE = set(["0-2", "1-2"]) ENDED = set(["5-1", "6-1", "7-1", "8-1"]) READY = set(["0-3", "0-9", "2-3", "2-9", "9-3", "9-9"]) RUN = set(["3-1", "3-4", "3-5", "3-6", "3-7", "3-8", "3-10", "10-1", "10-4", "10-5", "10-6", "10-7", "10-8", "10-10"]) EVICT = set(["4-1", "4-0"]) obj = {} with open(sys.argv[1], 'r') as f: obj = json.loads(f.read()) for pair in obj["data"]: s = set() qt = et = rt = xt = vt = ut = 0 print("End type " + str(pair[0])) x = pair[1] for k in x.keys(): if k in QUEUE: qt += x[k] elif k in ENDED: et += x[k] elif k in READY: rt += x[k] elif k in RUN: xt += x[k] elif k in EVICT: vt += x[k] else: s.add(k) ut += x[k] print("Queued: \t" + str(qt)) print("Ended: \t" + str(et)) print("Ready: \t" + str(rt)) print("Running:\t" + str(xt)) print("Evicted:\t" + str(vt)) print("Unknown:\t" + str(ut)) print(s)