summaryrefslogtreecommitdiff
path: root/benchmarks
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2018-09-04 02:27:40 +0200
committerPauli Virtanen <pav@iki.fi>2018-09-04 02:31:58 +0200
commita798ec780907a9656535b71709c7231b032cee6e (patch)
treef8ba7cceea830b150f94b5c7e1545923cf9ff86e /benchmarks
parent332da0452a0c428b936899bf0cb60019878cadd0 (diff)
downloadnumpy-a798ec780907a9656535b71709c7231b032cee6e.tar.gz
BENCH: split out slow setup method in bench_shape_base.Block
The setup for bench_shape_base.Block.time_3d takes 0.5sec -- split it out to avoid slowing down the other Block benchmarks.
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/benchmarks/bench_shape_base.py40
1 files changed, 25 insertions, 15 deletions
diff --git a/benchmarks/benchmarks/bench_shape_base.py b/benchmarks/benchmarks/bench_shape_base.py
index 9d0f0ae04..b05ea8263 100644
--- a/benchmarks/benchmarks/bench_shape_base.py
+++ b/benchmarks/benchmarks/bench_shape_base.py
@@ -33,18 +33,6 @@ class Block(Benchmark):
self.six = 6 * np.ones(5 * n)
self.zero = np.zeros((2 * n, 6 * n))
- self.a000 = np.ones((2 * n, 2 * n, 2 * n), int) * 1
-
- self.a100 = np.ones((3 * n, 2 * n, 2 * n), int) * 2
- self.a010 = np.ones((2 * n, 3 * n, 2 * n), int) * 3
- self.a001 = np.ones((2 * n, 2 * n, 3 * n), int) * 4
-
- self.a011 = np.ones((2 * n, 3 * n, 3 * n), int) * 5
- self.a101 = np.ones((3 * n, 2 * n, 3 * n), int) * 6
- self.a110 = np.ones((3 * n, 3 * n, 2 * n), int) * 7
-
- self.a111 = np.ones((3 * n, 3 * n, 3 * n), int) * 8
-
def time_block_simple_row_wise(self, n):
np.block([self.a_2d, self.b_2d])
@@ -72,6 +60,29 @@ class Block(Benchmark):
[self.zero]
])
+ def time_no_lists(self, n):
+ np.block(1)
+ np.block(np.eye(3 * n))
+
+
+class Block3D(Benchmark):
+ params = [1, 10, 100]
+ param_names = ['size']
+
+ def setup(self, n):
+ # Slow setup method: hence separated from the others above
+ self.a000 = np.ones((2 * n, 2 * n, 2 * n), int) * 1
+
+ self.a100 = np.ones((3 * n, 2 * n, 2 * n), int) * 2
+ self.a010 = np.ones((2 * n, 3 * n, 2 * n), int) * 3
+ self.a001 = np.ones((2 * n, 2 * n, 3 * n), int) * 4
+
+ self.a011 = np.ones((2 * n, 3 * n, 3 * n), int) * 5
+ self.a101 = np.ones((3 * n, 2 * n, 3 * n), int) * 6
+ self.a110 = np.ones((3 * n, 3 * n, 2 * n), int) * 7
+
+ self.a111 = np.ones((3 * n, 3 * n, 3 * n), int) * 8
+
def time_3d(self, n):
np.block([
[
@@ -84,6 +95,5 @@ class Block(Benchmark):
]
])
- def time_no_lists(self, n):
- np.block(1)
- np.block(np.eye(3 * n))
+ # Retain old benchmark name for backward compat
+ time_3d.benchmark_name = "bench_shape_base.Block.time_3d"