set auto x set yrange [650000:820000] set ylabel "CPU cycles" plot '%(infile)s' using 2:xtic(1) title col, '' using 3:xtic(1) title col, '' using 4:xtic(1) title col """ def plot(path, values, (apps_, variants_, measurements), numbers): assert "cpu" in measurements apps = ["dca", "coap", "rpc2"] assert set(apps).issubset(set(apps_)), str(apps_) variants = ["nat", "tl", "gen"] assert set(variants).issubset(set(variants_)), str(variants_) plotdata = plotting.grouped_boxes(values, apps, variants, "cpu") config = {'outfile': os.path.join(path, "cpu")} plotting.plot(script, config, plotdata) lst_tl = [] lst_gen = [] for a in apps: lst_tl.append(plotting.frac(values[(a, "nat", "cpu")], values[(a, "tl", "cpu")])) lst_gen.append(plotting.frac(values[(a, "nat", "cpu")], values[(a, "gen", "cpu")])) numbers.write("overhead: tl: max: %.2f\n" % max(lst_tl)) numbers.write("overhead: gen: max: %.2f\n" % max(lst_gen))
def plot(path, values, (apps_, variants_, measurements_), numbers): measurements = ["bss", "data", "stack"] assert set(measurements).issubset(measurements_), str(measurements_) apps = ["dca", "coap", "rpc2"] assert set(apps).issubset(set(apps_)), str(apps_) variants = ["nat", "tl", "gen"] assert set(variants).issubset(set(variants_)), str(variants_) data = StringIO.StringIO() for m in measurements: vals = [values[(a, v, m)] for a in apps for v in variants] plotting.out(data, [m] + [0] + vals[0:3] + [0] + vals[3:6] + [0] + vals[6:9] + [0]) plotdata = data.getvalue() config = {'outfile': os.path.join(path, "ram")} plotting.plot(script, config, plotdata) lst_bss = [] lst_ram = [] for a in apps: lst_bss.append(plotting.frac(values[(a, "nat", "bss")], values[(a, "gen", "bss")])) lst_ram.append(plotting.frac( sum([values[(a, "nat", m)] for m in measurements]), sum([values[(a, "gen", m)] for m in measurements]))) numbers.write("overhead: bss: max: %.2f\n" % max(lst_bss)) numbers.write("overhead: ram: max: %.2f\n" % max(lst_ram))
def proportion(self, rhs): prop = Properties("(%s)/(%s)" % (self.name, rhs.name)) for i in Properties.attributes(): setattr(prop, i, frac(getattr(self, i), getattr(rhs, i))) return prop
variants.remove("pal") measurements = ["text", "pal"] values = {} for a in apps: for v in variants: if v == "gen": values[(a, v, "text")] = values_[(a, v, "text")] - values_[(a, "pal", "text")] values[(a, v, "pal")] = values_[(a, "pal", "text")] else: values[(a, v, "text")] = values_[(a, v, "text")] values[(a, v, "pal")] = '-' data = StringIO.StringIO() for m in ["text", "pal"]: vals = [values[(a, v, m)] for a in apps for v in variants] plotting.out(data, [m] + [0] + vals[0:3] + [0] + vals[3:6] + [0] + vals[6:9] + [0]) plotdata = data.getvalue() config = {'outfile': os.path.join(path, "text")} plotting.plot(script, config, plotdata) lst_pal = [] lst_nopal = [] for a in apps: lst_nopal.append(plotting.frac(values[(a, "nat", "text")], values[(a, "gen", "text")])) lst_pal.append(plotting.frac(values[(a, "nat", "text")], values[(a, "gen", "text")] + values[(a, "gen", "pal")])) numbers.write("overhead: nopal: max: %.2f\n" % max(lst_nopal)) numbers.write("overhead: pal: max: %.2f\n" % max(lst_pal))
set key right set auto x set yrange [50:*] set ylabel "lines of code" plot '%(infile)s' using 2:xtic(1) title col, '' using 3:xtic(1) title col, '' using 4:xtic(1) title col """ def plot(path, values, (apps_, variants_, measurements), numbers): assert "loc" in measurements apps = ["dca", "coap", "rpc2"] assert set(apps).issubset(set(apps_)), str(apps_) variants = ["nat", "tl", "gen"] assert set(variants).issubset(set(variants_)), str(variants_) plotdata = plotting.grouped_boxes(values, apps, variants, "loc") config = {'outfile': os.path.join(path, "loc")} plotting.plot(script, config, plotdata) lst = [] for a in apps: lst.append(plotting.frac(values[(a, "nat", "loc")], values[(a, "gen", "loc")])) numbers.write("savings: min: %.2f\n" % min(lst)) numbers.write("savings: max: %.2f\n" % max(lst))