aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/t_test1.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/benchmarks/t_test1.py')
-rw-r--r--src/benchmarks/t_test1.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/benchmarks/t_test1.py b/src/benchmarks/t_test1.py
new file mode 100644
index 0000000..e43a511
--- /dev/null
+++ b/src/benchmarks/t_test1.py
@@ -0,0 +1,53 @@
+from src.allocator import bumpptr
+from src.benchmark import Benchmark
+
+
+class Benchmark_t_test1(Benchmark):
+ def __init__(self):
+ self.name = "t_test1"
+ self.descrition = """This benchmark from ptmalloc2 allocates and frees
+ n bins in t concurrent threads."""
+
+ self.cmd = "t-test1 {nthreads} {nthreads} 1000000 {maxsize}"
+
+ self.args = {"maxsize": [2 ** x for x in range(6, 18)],
+ "nthreads": Benchmark.scale_threads_for_cpus(2)}
+
+ self.requirements = ["t-test1"]
+ super().__init__()
+
+ self.allocators["bumpptr"] = bumpptr.build()
+
+ def summary(self):
+ # mops / per second
+ yval = "perm.nthreads / ({task-clock}/1000)"
+ # Speed
+ self.plot_fixed_arg(yval,
+ ylabel='"Mops / CPU second"',
+ title='"T-Ttest1: " + arg + " " + str(arg_value)',
+ filepostfix="time",
+ autoticks=False)
+
+ scale = list(self.results["allocators"].keys())[0]
+ self.plot_fixed_arg(yval,
+ ylabel='"Mops / CPU second scaled at {}"'.format(scale),
+ title='"T-Test1: " + arg + " " + str(arg_value) + " normalized {}"'.format(scale),
+ filepostfix="time.norm",
+ scale=scale,
+ autoticks=False)
+
+ # L1 cache misses
+ self.plot_fixed_arg("({L1-dcache-load-misses}/{L1-dcache-loads})*100",
+ ylabel='"L1 misses in %"',
+ title='"T-Test1 l1 cache misses: " + arg + " " + str(arg_value)',
+ filepostfix="l1misses",
+ autoticks=False)
+
+ # Speed Matrix
+ self.write_best_doublearg_tex_table(yval,
+ filepostfix="memusage.matrix")
+
+ self.export_to_csv("task-clock")
+
+
+t_test1 = Benchmark_t_test1()