Пример #1
0
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))
Пример #2
0
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))
Пример #3
0
 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
Пример #4
0
    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))
Пример #5
0
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))