forked from google/caliper
/
ActivityBenchmarks.java
73 lines (60 loc) · 2.03 KB
/
ActivityBenchmarks.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
65
66
67
68
69
70
71
72
73
package dk.ilios.spanner.example;
import java.io.File;
import dk.ilios.spanner.AfterExperiment;
import dk.ilios.spanner.BeforeExperiment;
import dk.ilios.spanner.Benchmark;
import dk.ilios.spanner.BenchmarkConfiguration;
import dk.ilios.spanner.Param;
import dk.ilios.spanner.SpannerConfig;
public class ActivityBenchmarks {
private File filesDir = MyApplication.getContext().getFilesDir();
private File resultsDir = new File(filesDir, "results");
private File baseLineFile = Utils.copyFromAssets("baseline.json");
@BenchmarkConfiguration
public SpannerConfig configuration = new SpannerConfig.Builder()
.saveResults(resultsDir, ActivityBenchmarks.class.getCanonicalName() + ".json")
.useBaseline(baseLineFile)
.medianFailureLimit(1.0f) // Accept 100% difference, normally should be 10-15%
.uploadResults()
.build();
// Public test parameters (value chosen and injected by Experiment)
@Param(value = {"java.util.Date", "java.lang.Object"})
public String value;
// Private fields used by benchmark methods
private Class testClass;
@BeforeExperiment
public void before() {
try {
testClass = Class.forName(value);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@AfterExperiment
public void after() {
}
@Benchmark
public boolean instanceOf(int reps) {
boolean result = false;
for (int i = 0; i < reps; i++) {
result = (testClass instanceof Object);
}
return result;
}
@Benchmark
public boolean directComparison(int reps) {
boolean result = false;
for (int i = 0; i < reps; i++) {
result = testClass == Object.class;
}
return result;
}
@Benchmark
public boolean equalsTo(int reps) {
boolean result = false;
for (int i = 0; i < reps; i++) {
result = testClass.equals(Object.class);
}
return result;
}
}