diff --git a/README.md b/README.md index 3523f7f..172a6e2 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ Run Custom Benchmark (CGM) with #### Run JMH with CGL and Powersort competition lists ```shell -./gradlew jmh +./gradlew jmh --rerun ``` - To benchmark only one of the different list collections, see `jmh { excludes }` at the bottom of [./app/build.gradle.kts](./app/build.gradle.kts). diff --git a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java index fa72c5a..7b5202a 100644 --- a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java +++ b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhBase.java @@ -45,7 +45,7 @@ import java.util.concurrent.TimeUnit; // - Until the 17th spike of up to +750% (Maybe JVM optimizations happening?) // - After 40th constant slowdown of around +10% (Maybe CPU frequency adjustments?) // Thus, we need at least ~50 warmup iterations! -@Warmup(iterations = 50) +@Warmup(iterations = 60) @Measurement(iterations = 6) /* diff --git a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java index eed492c..2990d1a 100644 --- a/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java +++ b/app/src/jmh/java/de/uni_marburg/powersort/benchmark/JmhCgl.java @@ -27,7 +27,12 @@ public class JmhCgl extends JmhBase { // Either all or a selection of sort implementations. //@Param() - @Param({"TIM_SORT", "FASTER_FINN_SORT", "IMPL_M_50"}) + @Param({ + "TIM_SORT", + "FASTER_FINN_SORT", + //"IMPL_M_40", + "IMPL_M_50", + }) SortEnum sortEnum; @Override diff --git a/app/src/main/java/de/uni_marburg/powersort/data/CglEnum.java b/app/src/main/java/de/uni_marburg/powersort/data/CglEnum.java index a7a37bd..ac6b95f 100644 --- a/app/src/main/java/de/uni_marburg/powersort/data/CglEnum.java +++ b/app/src/main/java/de/uni_marburg/powersort/data/CglEnum.java @@ -22,14 +22,14 @@ public enum CglEnum implements DataEnum { int runs = 3_010; int runLength = 3_010; - int manyRuns = 30_000; + int manyRuns = 120_000; int shortRunLength = 50; // Constant factors double a = 0.96; double b = 0.25; double c = 0.81; - double d = 1.0; + double d = 0.85; return switch (this) { case RANDOM_INTEGERS -> new RandomIntegers(listSize, seed); @@ -40,7 +40,7 @@ public enum CglEnum implements DataEnum { AscendingRuns.newAscendingRuns((int) (c * runs), (int) (c * runLength), (int) (-0.5 * c * runLength)); case MANY_ASCENDING_RUNS -> AscendingRuns.newAscendingRuns(manyRuns, shortRunLength, -1 * shortRunLength); case MANY_ASCENDING_RUNS_WITH_OVERLAP -> - AscendingRuns.newAscendingRuns((int) (d * manyRuns), (int) (d * shortRunLength), (int) (-0.5 * d * shortRunLength)); + AscendingRuns.newAscendingRuns((int) (d * manyRuns), shortRunLength, (int) (-0.5 * shortRunLength)); }; } }