Skip to content

Commit 6273121

Browse files
Measuring multiple Vector.slice over each other
1 parent 0c41e8d commit 6273121

File tree

1 file changed

+24
-7
lines changed
  • engine/runtime-benchmarks/src/main/java/org/enso/interpreter/bench/benchmarks/semantic

1 file changed

+24
-7
lines changed

engine/runtime-benchmarks/src/main/java/org/enso/interpreter/bench/benchmarks/semantic/VectorBenchmarks.java

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
@BenchmarkMode(Mode.AverageTime)
2222
@Fork(1)
23-
@Warmup(iterations = 3)
24-
@Measurement(iterations = 5)
23+
@Warmup(iterations = 3, time = 3, timeUnit = TimeUnit.SECONDS)
24+
@Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS)
2525
@OutputTimeUnit(TimeUnit.MILLISECONDS)
2626
@State(Scope.Benchmark)
2727
public class VectorBenchmarks {
@@ -35,10 +35,8 @@ public void initializeBenchmark(BenchmarkParams params) throws Exception {
3535
var benchmarkName = SrcUtil.findName(params);
3636
var code =
3737
"""
38-
import Standard.Base.Data.Vector.Builder
39-
import Standard.Base.Data.Vector.Vector
38+
from Standard.Base import all
4039
import Standard.Base.Data.Array_Proxy.Array_Proxy
41-
from Standard.Base.Data.Boolean import False
4240
4341
avg arr =
4442
sum acc i =
@@ -62,7 +60,16 @@ public void initializeBenchmark(BenchmarkParams params) throws Exception {
6260
6361
to_vector arr = Vector.from_polyglot_array arr
6462
to_array vec = vec.to_array
65-
slice vec = vec.slice
63+
slice n vec start end =
64+
initial = vec.slice start end
65+
66+
complicate round v = if round != 0 then complicate round-1 (v.slice 1 v.length) else
67+
Runtime.assert v==initial
68+
v
69+
70+
if n==0 then initial else
71+
complicate n (0.up_to n).to_vector+initial
72+
6673
fill_proxy proxy vec =
6774
size v =
6875
_ = v
@@ -91,7 +98,12 @@ public void initializeBenchmark(BenchmarkParams params) throws Exception {
9198
}
9299
case "averageOverSlice":
93100
{
94-
this.arrayOfFibNumbers = getMethod.apply("slice").execute(self, vec, 1, length);
101+
this.arrayOfFibNumbers = getMethod.apply("slice").execute(self, 0, vec, 1, length);
102+
break;
103+
}
104+
case "averageOverSliceWrapped":
105+
{
106+
this.arrayOfFibNumbers = getMethod.apply("slice").execute(self, 10, vec, 1, length);
95107
break;
96108
}
97109
case "averageOverArray":
@@ -154,6 +166,11 @@ public void averageOverSlice(Blackhole matter) {
154166
performBenchmark(matter);
155167
}
156168

169+
@Benchmark
170+
public void averageOverSliceWrapped(Blackhole matter) {
171+
performBenchmark(matter);
172+
}
173+
157174
@Benchmark
158175
public void averageOverPolyglotVector(Blackhole matter) {
159176
performBenchmark(matter);

0 commit comments

Comments
 (0)