-
Notifications
You must be signed in to change notification settings - Fork 2
/
PerfTest.java
64 lines (53 loc) · 2.89 KB
/
PerfTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package example.perf;
import org.openjdk.jmh.annotations.GenerateMicroBenchmark;
import example.MapOperator;
import example.MapProcessor;
public class PerfTest {
@GenerateMicroBenchmark
public void liftSingleSubscribe(UseCaseInput input) throws InterruptedException {
new FiniteSynchronousLongPublisher(input.size).lift(new MapOperator<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
input.awaitCompletion();
}
@GenerateMicroBenchmark
public void liftMultiSubscribe(UseCaseInput input) throws InterruptedException {
FiniteSynchronousLongPublisher p = new FiniteSynchronousLongPublisher(input.size);
p.lift(new MapOperator<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
p.lift(new MapOperator<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
input.awaitCompletion();
}
@GenerateMicroBenchmark
public void liftMultiStep(UseCaseInput input) throws InterruptedException {
new FiniteSynchronousLongPublisher(input.size)
.lift(new MapOperator<Long, String>(l -> String.valueOf(l)))
.lift(new MapOperator<String, Long>(s -> Long.parseLong(s)))
.lift(new MapOperator<Long, String>(l -> String.valueOf(l)))
.subscribe(input.subscriber);
input.awaitCompletion();
}
@GenerateMicroBenchmark
public void processWithoutSupplier(UseCaseInput input) throws InterruptedException {
new FiniteSynchronousLongPublisher(input.size).process(new MapProcessor<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
input.awaitCompletion();
}
@GenerateMicroBenchmark
public void processWithSupplier(UseCaseInput input) throws InterruptedException {
new FiniteSynchronousLongPublisher(input.size).process(() -> new MapProcessor<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
input.awaitCompletion();
}
@GenerateMicroBenchmark
public void processWithSupplierMultistep(UseCaseInput input) throws InterruptedException {
new FiniteSynchronousLongPublisher(input.size)
.process(() -> new MapProcessor<Long, String>(l -> String.valueOf(l)))
.process(() -> new MapProcessor<String, Long>(s -> Long.parseLong(s)))
.process(() -> new MapProcessor<Long, String>(l -> String.valueOf(l)))
.subscribe(input.subscriber);
input.awaitCompletion();
}
@GenerateMicroBenchmark
public void processWithSupplierMultiSubscribe(UseCaseInput input) throws InterruptedException {
FiniteSynchronousLongPublisher p = new FiniteSynchronousLongPublisher(input.size);
p.process(() -> new MapProcessor<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
p.process(() -> new MapProcessor<Long, String>(l -> "Num: " + l)).subscribe(input.subscriber);
input.awaitCompletion();
}
}