From 1d59b63de62ef2ac3cb5313f0162cef4de641cdf Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sat, 13 Apr 2019 17:08:39 +0200 Subject: improve descriptive statistics, csv-export and add general barplot function --- src/benchmarks/loop.py | 3 +-- src/benchmarks/mysql.py | 67 +++++++++++++---------------------------------- src/benchmarks/realloc.py | 2 +- 3 files changed, 20 insertions(+), 52 deletions(-) (limited to 'src/benchmarks') diff --git a/src/benchmarks/loop.py b/src/benchmarks/loop.py index 099a578..ef291c4 100644 --- a/src/benchmarks/loop.py +++ b/src/benchmarks/loop.py @@ -42,8 +42,7 @@ class Benchmark_Loop(Benchmark): self.write_best_doublearg_tex_table("perm.nthreads / ({task-clock}/1000)", filepostfix="memusage.matrix") - self.export_to_csv(datapoints=["task-clock", "L1-dcache-load-misses", - "L1-dcache-loads"]) + self.export_to_csv("task-clock") loop = Benchmark_Loop() diff --git a/src/benchmarks/mysql.py b/src/benchmarks/mysql.py index 0ac3f75..1420b4d 100644 --- a/src/benchmarks/mysql.py +++ b/src/benchmarks/mysql.py @@ -166,72 +166,39 @@ class Benchmark_MYSQL(Benchmark): xlabel='"threads"', ylabel='"transactions"', title='"sysbench oltp read only"', - filepostfix="l.ro") + filepostfix="l") - # linear plot + # normalized linear plot ref_alloc = list(allocators)[0] self.plot_single_arg("{transactions}", xlabel='"threads"', ylabel='"transactions scaled at " + scale', title='"sysbench oltp read only"', - filepostfix="norm.l.ro", + filepostfix="norm.l", scale=ref_alloc) # bar plot - for i, allocator in enumerate(allocators): - y_vals = [] - for perm in self.iterate_args(args=self.results["args"]): - d = [int(m["transactions"]) for m in self.results[allocator][perm]] - y_vals.append(np.mean(d)) - x_vals = [x-i/8 for x in range(1, len(y_vals) + 1)] - plt.bar(x_vals, y_vals, width=0.2, label=allocator, align="center", - color=allocators[allocator]["color"]) - - plt.legend() - plt.xlabel("threads") - plt.xticks(range(1, len(y_vals) + 1), self.results["args"]["nthreads"]) - plt.ylabel("transactions") - plt.title("sysbench oltp read only") - plt.savefig(self.name + ".b.ro.png") - plt.clf() + self.barplot_single_arg("{transactions}", + xlabel='"threads"', + ylabel='"transactions"', + title='"sysbench oltp read only"', + filepostfix="b") # normalized bar plot - norm_y_vals = [] - for perm in self.iterate_args(args=self.results["args"]): - d = [int(m["transactions"]) for m in self.results[ref_alloc][perm]] - norm_y_vals.append(np.mean(d)) - - nallocs = len(allocators) - x_vals = [x for x in range(1, len(norm_y_vals)*nallocs + 1, nallocs)] - plt.bar(x_vals, [1]*len(norm_y_vals), width=0.7, label=ref_alloc, - align="center", color=allocators[ref_alloc]["color"]) - - for i, allocator in enumerate(list(allocators)[1:]): - y_vals = [] - for y, perm in enumerate(self.iterate_args(args=self.results["args"])): - d = [int(m["transactions"]) for m in self.results[allocator][perm]] - y_vals.append(np.mean(d) / norm_y_vals[y]) - - x_vals = [x+i+1 for x in range(1, len(norm_y_vals)*nallocs + 1, nallocs)] - - plt.bar(x_vals, y_vals, width=0.7, label=allocator, align="center", - color=allocators[allocator]["color"]) - - plt.legend() - plt.xlabel("threads") - plt.xticks(range(1, len(norm_y_vals)*nallocs + 1, nallocs), self.results["args"]["nthreads"]) - plt.ylabel("transactions normalized") - plt.title("sysbench oltp read only") - plt.savefig(self.name + ".norm.b.ro.png") - plt.clf() + self.barplot_single_arg("{transactions}", + xlabel='"threads"', + ylabel='"transactions scaled at " + scale', + title='"sysbench oltp read only"', + filepostfix="norm.b", + scale=ref_alloc) # Memusage - self.plot_single_arg("{rssmax}", + self.barplot_single_arg("{rssmax}", xlabel='"threads"', ylabel='"VmHWM in kB"', title='"Memusage sysbench oltp read only"', - filepostfix="ro.mem") + filepostfix="mem") # Colored latex table showing transactions count d = {allocator: {} for allocator in allocators} @@ -281,5 +248,7 @@ class Benchmark_MYSQL(Benchmark): print("\end{tabular}", file=f) + self.export_to_csv("transactions") + mysql = Benchmark_MYSQL() diff --git a/src/benchmarks/realloc.py b/src/benchmarks/realloc.py index d39c7a0..957d5fd 100644 --- a/src/benchmarks/realloc.py +++ b/src/benchmarks/realloc.py @@ -33,7 +33,7 @@ class Benchmark_Realloc(Benchmark): plt.savefig(self.name + ".png") plt.clf() - self.export_to_csv(datapoints=["task-clock"]) + self.export_to_csv("task-clock") realloc = Benchmark_Realloc() -- cgit v1.2.3