Skip to content

Commit 9fdb2ce

Browse files
committed
Simplify Runner logic
1 parent b54537a commit 9fdb2ce

File tree

2 files changed

+8
-37
lines changed

2 files changed

+8
-37
lines changed

src/test/java/io/vavr/JmhRunner.java

+8-29
Original file line numberDiff line numberDiff line change
@@ -87,27 +87,27 @@ public enum Includes {
8787

8888
@SuppressWarnings("unused")
8989
public static void runQuickNoAsserts(Array<Class<?>> groups, Includes... includes) {
90-
run(5, 5, 10, ForkJvm.ENABLE, VerboseMode.NORMAL, Assertions.DISABLE, PrintInlining.DISABLE, groups, includes).print();
90+
run(5, 5, 10, VerboseMode.NORMAL, PrintInlining.DISABLE, groups, includes).print();
9191
}
9292

9393
@SuppressWarnings("unused")
9494
public static void runNormalNoAsserts(Array<Class<?>> groups, Includes... includes) {
95-
run(7, 7, 300, ForkJvm.ENABLE, VerboseMode.NORMAL, Assertions.DISABLE, PrintInlining.DISABLE, groups, includes).print();
95+
run(7, 7, 300, VerboseMode.NORMAL, PrintInlining.DISABLE, groups, includes).print();
9696
}
9797

9898
@SuppressWarnings("unused")
9999
public static void runSlowNoAsserts(Array<Class<?>> groups, Includes... includes) {
100-
run(15, 15, 400, ForkJvm.ENABLE, VerboseMode.EXTRA, Assertions.DISABLE, PrintInlining.DISABLE, groups, includes).print();
100+
run(15, 15, 400, VerboseMode.EXTRA, PrintInlining.DISABLE, groups, includes).print();
101101
}
102102

103-
private static BenchmarkPerformanceReporter run(int warmupIterations, int measurementIterations, int millis, ForkJvm forkJvm, VerboseMode silent, Assertions assertions, PrintInlining printInlining, Array<Class<?>> groups, Includes[] includes) {
103+
private static BenchmarkPerformanceReporter run(int warmupIterations, int measurementIterations, int millis, VerboseMode silent, PrintInlining printInlining, Array<Class<?>> groups, Includes[] includes) {
104104
final Array<String> includeNames = Array.of(includes.length == 0 ? Includes.values() : includes).map(Includes::toString);
105105
final Array<String> classNames = groups.map(Class::getCanonicalName);
106-
final Array<RunResult> results = run(warmupIterations, measurementIterations, millis, forkJvm, silent, assertions, printInlining, classNames, includeNames);
106+
final Array<RunResult> results = run(warmupIterations, measurementIterations, millis, silent, printInlining, classNames, includeNames);
107107
return BenchmarkPerformanceReporter.of(includeNames, classNames, results);
108108
}
109109

110-
private static Array<RunResult> run(int warmupIterations, int measurementIterations, int millis, ForkJvm forkJvm, VerboseMode verboseMode, Assertions assertions, PrintInlining printInlining, Array<String> classNames, Array<String> includeNames) {
110+
private static Array<RunResult> run(int warmupIterations, int measurementIterations, int millis, VerboseMode verboseMode, PrintInlining printInlining, Array<String> classNames, Array<String> includeNames) {
111111
try {
112112
final ChainedOptionsBuilder builder = new OptionsBuilder()
113113
.shouldDoGC(true)
@@ -119,10 +119,10 @@ private static Array<RunResult> run(int warmupIterations, int measurementIterati
119119
.warmupIterations(warmupIterations)
120120
.measurementTime(TimeValue.milliseconds(millis))
121121
.measurementIterations(measurementIterations)
122-
.forks(forkJvm.forkCount)
122+
.forks(1)
123123
/* We are using 4Gb and setting NewGen to 100% to avoid GC during testing.
124124
Any GC during testing will destroy the iteration (i.e. introduce unreliable noise in the measurement), which should get ignored as an outlier */
125-
.jvmArgsAppend("-XX:+UseG1GC", "-Xss100m", "-Xms4g", "-Xmx4g", "-XX:MaxGCPauseMillis=1000", "-XX:+UnlockExperimentalVMOptions", "-XX:G1NewSizePercent=100", "-XX:G1MaxNewSizePercent=100", assertions.vmArg);
125+
.jvmArgsAppend("-XX:+UseG1GC", "-Xss100m", "-Xms4g", "-Xmx4g", "-XX:MaxGCPauseMillis=1000", "-XX:+UnlockExperimentalVMOptions", "-XX:G1NewSizePercent=100", "-XX:G1MaxNewSizePercent=100", "-disableassertions");
126126

127127
final String includePattern = includeNames.mkString("\\..*?\\b(", "|", ")_");
128128
classNames.forEach(name -> builder.include(name + includePattern));
@@ -137,27 +137,6 @@ Any GC during testing will destroy the iteration (i.e. introduce unreliable nois
137137
}
138138
}
139139

140-
/* Options */
141-
private enum ForkJvm {
142-
ENABLE(1);
143-
144-
final int forkCount;
145-
146-
ForkJvm(int forkCount) {
147-
this.forkCount = forkCount;
148-
}
149-
}
150-
151-
private enum Assertions {
152-
DISABLE("-disableassertions");
153-
154-
final String vmArg;
155-
156-
Assertions(String vmArg) {
157-
this.vmArg = vmArg;
158-
}
159-
}
160-
161140
private enum PrintInlining {
162141
ENABLE,
163142
DISABLE

src/test/java/io/vavr/MemoryUsage.java

-8
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,10 @@
2626
import java.util.function.Predicate;
2727
import java.util.regex.Pattern;
2828

29-
import static java.lang.Math.max;
30-
3129
public class MemoryUsage {
3230
private static final DecimalFormat FORMAT = new DecimalFormat("#,##0");
3331
private static Map<Integer, LinkedHashSet<Seq<CharSeq>>> memoryUsages = TreeMap.empty(); // if forked, this will be reset every time
3432

35-
private static Seq<Integer> columnSizes(int size) {
36-
return memoryUsages.get(size)
37-
.map(rows -> rows.map(row -> row.map(CharSeq::length))).get()
38-
.reduce((row1, row2) -> row1.zip(row2).map(ts -> max(ts._1, ts._2)));
39-
}
40-
4133
static void storeMemoryUsages(int elementCount, Object target) {
4234
memoryUsages = memoryUsages.put(elementCount, memoryUsages.get(elementCount).getOrElse(LinkedHashSet.empty()).add(Array.of(
4335
toHumanReadableName(target),

0 commit comments

Comments
 (0)