This is an automated email from the ASF dual-hosted git repository.
zstan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new ec58a0ea8b9 IGNITE-28802 Fix benchmarks for JDK 17 (#13255)
ec58a0ea8b9 is described below
commit ec58a0ea8b90ea3ee44eec1b8745a5c3f1815e27
Author: Dmitry Werner <[email protected]>
AuthorDate: Mon Jun 22 13:06:12 2026 +0500
IGNITE-28802 Fix benchmarks for JDK 17 (#13255)
---
.../jmh/binary/JmhMapSerdesBenchmark.java | 5 +-
.../jmh/cache/JmhCacheAsyncListenBenchmark.java | 27 ++++----
.../benchmarks/jmh/cache/JmhCacheBenchmark.java | 3 +-
.../jmh/cache/JmhCacheExpireBenchmark.java | 12 ++--
.../jmh/cache/JmhCacheLocksBenchmark.java | 15 ++---
.../SmallHashSetsVsReadOnlyViewBenchmark.java | 1 +
.../JmhPageLockTrackerBenchmark.java | 12 ++--
.../JmhKeystoreEncryptionSpiBenchmark.java | 12 ++--
.../GridDhtPartitionsStateValidatorBenchmark.java | 14 ++--
.../misc/JmhPartitionUpdateCounterBenchmark.java | 12 ++--
.../jmh/misc/JmhSegmentedLruListBenchmark.java | 12 ++--
.../jmh/misc/JmhTracingContextBenchmark.java | 12 ++--
.../jmh/notify/JmhWaitStategyBenchmark.java | 19 ++----
.../jmh/runner/JmhIdeBenchmarkRunner.java | 75 ++++++++++++++++++----
.../jmh/sql/JmhCacheWithInterceptorBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlAggBenchmark.java | 12 ++--
.../jmh/sql/JmhSqlCorrelateBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlDmlBenchmark.java | 12 ++--
.../jmh/sql/JmhSqlDmlReplicatedBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlInsertBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlJoinBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlScanBenchmark.java | 12 ++--
.../jmh/sql/JmhSqlScanReplicatedBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlSetOpBenchmark.java | 14 ++--
.../benchmarks/jmh/sql/JmhSqlSortBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/JmhSqlUdfBenchmark.java | 12 ++--
.../benchmarks/jmh/sql/tpch/TpchBenchmark.java | 23 +++----
.../jmh/streamer/JmhStreamerAddDataBenchmark.java | 18 ++----
.../jmh/thin/JmhThinClientCacheBenchmark.java | 20 +++---
.../benchmarks/jmh/tree/IndexFindBenchmark.java | 12 ++--
.../ignite/internal/util/FeatureChecker.java | 47 +++++++-------
31 files changed, 227 insertions(+), 270 deletions(-)
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/binary/JmhMapSerdesBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/binary/JmhMapSerdesBenchmark.java
index 4744f7e125b..9c29d247866 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/binary/JmhMapSerdesBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/binary/JmhMapSerdesBenchmark.java
@@ -24,6 +24,7 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.ignite.Ignition;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.binary.BinaryWriterEx;
@@ -71,7 +72,9 @@ public class JmhMapSerdesBenchmark {
/** */
public static void main(String[] args) throws Exception {
- org.openjdk.jmh.Main.main(new
String[]{JmhMapSerdesBenchmark.class.getName()});
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhMapSerdesBenchmark.class.getName())
+ .run();
}
/** */
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheAsyncListenBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheAsyncListenBenchmark.java
index dea077222d1..1368b3a86c1 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheAsyncListenBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheAsyncListenBenchmark.java
@@ -28,8 +28,6 @@ import org.apache.ignite.internal.benchmarks.model.IntValue;
import org.apache.ignite.lang.IgniteFuture;
import org.apache.ignite.lang.IgniteInClosure;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.Mode;
-
/**
* Cache async listen benchmark.
@@ -147,17 +145,18 @@ public class JmhCacheAsyncListenBenchmark extends
JmhCacheAbstractBenchmark {
CacheWriteSynchronizationMode writeSyncMode) throws Exception {
JmhIdeBenchmarkRunner.create()
- .forks(1)
- .threads(threads)
- .benchmarks(JmhCacheAsyncListenBenchmark.class.getSimpleName())
- .jvmArguments(
- "-Xms4g",
- "-Xmx4g",
- JmhIdeBenchmarkRunner.createProperty(PROP_ATOMICITY_MODE,
atomicityMode),
- JmhIdeBenchmarkRunner.createProperty(PROP_WRITE_SYNC_MODE,
writeSyncMode),
- JmhIdeBenchmarkRunner.createProperty(PROP_DATA_NODES, 2),
- JmhIdeBenchmarkRunner.createProperty(PROP_CLIENT_MODE,
client))
- .benchmarkModes(Mode.Throughput)
- .run();
+ .forks(1)
+ .threads(threads)
+ .benchmarks(JmhCacheAsyncListenBenchmark.class.getSimpleName())
+ .jvmArguments(
+ "-Xms4g",
+ "-Xmx4g",
+ JmhIdeBenchmarkRunner.createProperty(PROP_ATOMICITY_MODE,
atomicityMode),
+ JmhIdeBenchmarkRunner.createProperty(PROP_WRITE_SYNC_MODE,
writeSyncMode),
+ JmhIdeBenchmarkRunner.createProperty(PROP_DATA_NODES, 2),
+ JmhIdeBenchmarkRunner.createProperty(PROP_CLIENT_MODE, client))
+ .warmupIterations(10)
+ .measurementIterations(10)
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheBenchmark.java
index 5e9ac60b3f2..ffb5e7b7498 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheBenchmark.java
@@ -127,9 +127,8 @@ public class JmhCacheBenchmark extends
JmhCacheAbstractBenchmark {
.jvmArguments(
"-Xms4g",
"-Xmx4g",
- "-XX:+UnlockCommercialFeatures",
"-XX:+FlightRecorder",
-
"-XX:StartFlightRecording=delay=30s,dumponexit=true,settings=alloc,filename=" +
output + ".jfr",
+
"-XX:StartFlightRecording=delay=30s,dumponexit=true,settings=profile,filename="
+ output + ".jfr",
JmhIdeBenchmarkRunner.createProperty(PROP_ATOMICITY_MODE,
atomicityMode),
JmhIdeBenchmarkRunner.createProperty(PROP_WRITE_SYNC_MODE,
writeSyncMode),
JmhIdeBenchmarkRunner.createProperty(PROP_DATA_NODES, 2),
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheExpireBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheExpireBenchmark.java
index 79b9bf12a78..14f521d1277 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheExpireBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheExpireBenchmark.java
@@ -29,6 +29,7 @@ import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.DataRegionConfiguration;
import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
@@ -43,9 +44,6 @@ import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Compare put with expiry policy and without expiry policy.
@@ -135,10 +133,8 @@ public class JmhCacheExpireBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhCacheExpireBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhCacheExpireBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheLocksBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheLocksBenchmark.java
index 677e7674345..2f1af3dbd9e 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheLocksBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/cache/JmhCacheLocksBenchmark.java
@@ -28,9 +28,6 @@ import org.openjdk.jmh.annotations.Level;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* IgniteCache.lock() vs Ignite.reentrantLock().
@@ -101,19 +98,17 @@ public class JmhCacheLocksBenchmark extends
JmhCacheAbstractBenchmark {
"-" + atomicityMode +
"-" + writeSyncMode;
- final Options opt = new OptionsBuilder()
+ JmhIdeBenchmarkRunner.create()
.threads(threads)
- .include(simpleClsName)
+ .benchmarks(simpleClsName)
.output(output + ".jmh.log")
- .jvmArgs(
+ .jvmArguments(
"-Xms1g",
"-Xmx1g",
- "-XX:+UnlockCommercialFeatures",
JmhIdeBenchmarkRunner.createProperty(PROP_ATOMICITY_MODE,
atomicityMode),
JmhIdeBenchmarkRunner.createProperty(PROP_WRITE_SYNC_MODE,
writeSyncMode),
JmhIdeBenchmarkRunner.createProperty(PROP_DATA_NODES, 4),
- JmhIdeBenchmarkRunner.createProperty(PROP_CLIENT_MODE,
client)).build();
-
- new Runner(opt).run();
+ JmhIdeBenchmarkRunner.createProperty(PROP_CLIENT_MODE, client))
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/collections/SmallHashSetsVsReadOnlyViewBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/collections/SmallHashSetsVsReadOnlyViewBenchmark.java
index 13d1c916910..8b4a272e9ac 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/collections/SmallHashSetsVsReadOnlyViewBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/collections/SmallHashSetsVsReadOnlyViewBenchmark.java
@@ -62,6 +62,7 @@ public class SmallHashSetsVsReadOnlyViewBenchmark extends
JmhAbstractBenchmark {
.threads(1)
.measurementIterations(20)
.benchmarks(SmallHashSetsVsReadOnlyViewBenchmark.class.getSimpleName())
+ .warmupIterations(10)
.run();
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/diagnostic/pagelocktracker/JmhPageLockTrackerBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/diagnostic/pagelocktracker/JmhPageLockTrackerBenchmark.java
index 90226089c37..d4131806c22 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/diagnostic/pagelocktracker/JmhPageLockTrackerBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/diagnostic/pagelocktracker/JmhPageLockTrackerBenchmark.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.benchmarks.jmh.diagnostic.pagelocktracker;
import
org.apache.ignite.internal.benchmarks.jmh.diagnostic.pagelocktracker.stack.LockTrackerNoBarrier;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import
org.apache.ignite.internal.processors.cache.persistence.diagnostic.pagelocktracker.PageLockTracker;
import
org.apache.ignite.internal.processors.cache.persistence.diagnostic.pagelocktracker.PageLockTrackerFactory;
import
org.apache.ignite.internal.processors.cache.persistence.tree.util.PageLockListener;
@@ -30,9 +31,6 @@ import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
import static
org.apache.ignite.internal.processors.cache.persistence.diagnostic.pagelocktracker.PageLockTrackerFactory.HEAP_LOG;
import static
org.apache.ignite.internal.processors.cache.persistence.diagnostic.pagelocktracker.PageLockTrackerFactory.HEAP_STACK;
@@ -47,11 +45,9 @@ public class JmhPageLockTrackerBenchmark {
* @param args Params.
*/
public static void main(String[] args) throws Exception {
- Options opt = new OptionsBuilder()
- .include(JmhPageLockTrackerBenchmark.class.getSimpleName())
- .build();
-
- new Runner(opt).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhPageLockTrackerBenchmark.class.getSimpleName())
+ .run();
}
/** */
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/encryption/JmhKeystoreEncryptionSpiBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/encryption/JmhKeystoreEncryptionSpiBenchmark.java
index 4f5391f5b8d..a18647bcfa8 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/encryption/JmhKeystoreEncryptionSpiBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/encryption/JmhKeystoreEncryptionSpiBenchmark.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.benchmarks.jmh.encryption;
import java.nio.ByteBuffer;
import java.util.concurrent.ThreadLocalRandom;
import org.apache.ignite.internal.benchmarks.jmh.JmhAbstractBenchmark;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.spi.encryption.keystore.KeystoreEncryptionKey;
import org.apache.ignite.spi.encryption.keystore.KeystoreEncryptionSpi;
import org.openjdk.jmh.annotations.Benchmark;
@@ -29,9 +30,6 @@ import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.infra.Blackhole;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
import static org.apache.ignite.internal.util.IgniteUtils.resolveIgnitePath;
@@ -114,14 +112,12 @@ public class JmhKeystoreEncryptionSpiBenchmark extends
JmhAbstractBenchmark {
/** */
public static void main(String[] args) throws Exception {
- Options opt = new OptionsBuilder()
- .include(JmhKeystoreEncryptionSpiBenchmark.class.getSimpleName())
+ JmhIdeBenchmarkRunner.create()
+
.benchmarks(JmhKeystoreEncryptionSpiBenchmark.class.getSimpleName())
.threads(1)
.forks(1)
.warmupIterations(10)
.measurementIterations(20)
- .build();
-
- new Runner(opt).run();
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/GridDhtPartitionsStateValidatorBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/GridDhtPartitionsStateValidatorBenchmark.java
index f34430ea036..cd8d217d5de 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/GridDhtPartitionsStateValidatorBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/GridDhtPartitionsStateValidatorBenchmark.java
@@ -179,12 +179,12 @@ public class GridDhtPartitionsStateValidatorBenchmark
extends JmhAbstractBenchma
*/
private static void run(int threads) throws Exception {
JmhIdeBenchmarkRunner.create()
- .forks(1)
- .threads(threads)
- .warmupIterations(5)
- .measurementIterations(10)
-
.benchmarks(GridDhtPartitionsStateValidatorBenchmark.class.getSimpleName())
- .jvmArguments("-XX:+UseG1GC", "-Xms4g", "-Xmx4g")
- .run();
+ .forks(1)
+ .threads(threads)
+ .warmupIterations(5)
+ .measurementIterations(10)
+
.benchmarks(GridDhtPartitionsStateValidatorBenchmark.class.getSimpleName())
+ .jvmArguments("-XX:+UseG1GC", "-Xms4g", "-Xmx4g")
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhPartitionUpdateCounterBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhPartitionUpdateCounterBenchmark.java
index ff45c9fe73e..f75d17e4529 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhPartitionUpdateCounterBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhPartitionUpdateCounterBenchmark.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.benchmarks.jmh.misc;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import
org.apache.ignite.internal.processors.cache.PartitionUpdateCounterTrackingImpl;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -33,9 +34,6 @@ import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmarks {@link PartitionUpdateCounterTrackingImpl} class.
@@ -102,10 +100,8 @@ public class JmhPartitionUpdateCounterBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhPartitionUpdateCounterBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+
.benchmarks(JmhPartitionUpdateCounterBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhSegmentedLruListBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhSegmentedLruListBenchmark.java
index fa418dd4a12..26a769da1e9 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhSegmentedLruListBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhSegmentedLruListBenchmark.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.benchmarks.jmh.misc;
import java.util.Random;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.internal.mem.DirectMemoryProvider;
import org.apache.ignite.internal.mem.DirectMemoryRegion;
import org.apache.ignite.internal.mem.unsafe.UnsafeMemoryProvider;
@@ -36,9 +37,6 @@ import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmarks {@link SegmentedLruPageList} class.
@@ -113,10 +111,8 @@ public class JmhSegmentedLruListBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSegmentedLruListBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSegmentedLruListBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhTracingContextBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhTracingContextBenchmark.java
index 0a650568b1b..22874d528fe 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhTracingContextBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/misc/JmhTracingContextBenchmark.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.benchmarks.jmh.misc;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.internal.processors.tracing.MTC;
import org.apache.ignite.internal.processors.tracing.NoopTracing;
import org.apache.ignite.internal.processors.tracing.Span;
@@ -36,9 +37,6 @@ import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
import org.openjdk.jmh.infra.Blackhole;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmarks {@link MTC} class.
@@ -103,10 +101,8 @@ public class JmhTracingContextBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhTracingContextBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhTracingContextBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/notify/JmhWaitStategyBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/notify/JmhWaitStategyBenchmark.java
index 8d615aaf544..1c6a641b8e3 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/notify/JmhWaitStategyBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/notify/JmhWaitStategyBenchmark.java
@@ -32,6 +32,7 @@ import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.configuration.CacheConfiguration;
import
org.apache.ignite.internal.benchmarks.jmh.cache.JmhCacheAbstractBenchmark;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.internal.benchmarks.model.IntValue;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -47,10 +48,6 @@ import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.annotations.Warmup;
import org.openjdk.jmh.infra.BenchmarkParams;
import org.openjdk.jmh.results.RunResult;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.ChainedOptionsBuilder;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
import org.openjdk.jmh.runner.options.TimeValue;
/**
@@ -218,7 +215,7 @@ public class JmhWaitStategyBenchmark extends
JmhCacheAbstractBenchmark {
/**
* Benchmark runner
*/
- public static void main(String[] args) throws RunnerException {
+ public static void main(String[] args) throws Exception {
List<String> policies = Arrays.asList("inc", "dec", "r25", "r50",
"r75");
int[] threads = {2, 4, 8, 16, 32};
@@ -226,20 +223,18 @@ public class JmhWaitStategyBenchmark extends
JmhCacheAbstractBenchmark {
for (String plc : policies) {
for (int thread : threads) {
- ChainedOptionsBuilder builder = new OptionsBuilder()
- .jvmArgs()
- .timeUnit(TimeUnit.MILLISECONDS)
+ JmhIdeBenchmarkRunner runner = JmhIdeBenchmarkRunner.create()
+ .outputTimeUnit(TimeUnit.MILLISECONDS)
.measurementIterations(10)
.measurementTime(TimeValue.seconds(20))
.warmupIterations(5)
.warmupTime(TimeValue.seconds(10))
- .jvmArgs("-Dbench.exp.policy=" + plc)
+ .jvmArguments("-Dbench.exp.policy=" + plc)
.forks(1)
.threads(thread)
- .mode(Mode.Throughput)
- .include(JmhWaitStategyBenchmark.class.getSimpleName());
+ .benchmarks(JmhWaitStategyBenchmark.class.getSimpleName());
- results.addAll(new Runner(builder.build()).run());
+ results.addAll(runner.run());
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/runner/JmhIdeBenchmarkRunner.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/runner/JmhIdeBenchmarkRunner.java
index f7d9282c874..a0266513bcc 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/runner/JmhIdeBenchmarkRunner.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/runner/JmhIdeBenchmarkRunner.java
@@ -17,29 +17,44 @@
package org.apache.ignite.internal.benchmarks.jmh.runner;
+import java.util.Collection;
import java.util.concurrent.TimeUnit;
+import org.apache.ignite.internal.util.typedef.F;
import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.results.RunResult;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.options.OptionsBuilder;
+import org.openjdk.jmh.runner.options.TimeValue;
+
+import static org.apache.ignite.internal.util.FeatureChecker.JAVA_17_OPTIONS;
/**
* JMH IDE benchmark runner configuration.
*/
public class JmhIdeBenchmarkRunner {
+ /** Default JVM arguments. */
+ private static final String[] DFLT_JVM_ARGS = JAVA_17_OPTIONS.split("\n");
+
/** Benchmark modes. */
- private Mode[] benchmarkModes = new Mode[] { Mode.Throughput };
+ private Mode[] benchmarkModes;
/** Amount of forks */
private int forks = 1;
/** Warmup iterations. */
- private int warmupIterations = 10;
+ private int warmupIterations = -1;
+
+ /** Warmup time. */
+ private TimeValue warmupTime;
/** Measurement operations. */
- private int measurementIterations = 10;
+ private int measurementIterations;
+
+ /** Measurement time. */
+ private TimeValue measurementTime;
/** Output time unit. */
- private TimeUnit outputTimeUnit = TimeUnit.SECONDS;
+ private TimeUnit outputTimeUnit;
/** Benchmarks to run. */
private Object[] benchmarks;
@@ -102,6 +117,16 @@ public class JmhIdeBenchmarkRunner {
return this;
}
+ /**
+ * @param warmupTime Warmup time.
+ * @return This instance.
+ */
+ public JmhIdeBenchmarkRunner warmupTime(TimeValue warmupTime) {
+ this.warmupTime = warmupTime;
+
+ return this;
+ }
+
/**
* @param measurementIterations Measurement iterations.
* @return This instance.
@@ -112,6 +137,16 @@ public class JmhIdeBenchmarkRunner {
return this;
}
+ /**
+ * @param measurementTime Measurement time.
+ * @return This instance.
+ */
+ public JmhIdeBenchmarkRunner measurementTime(TimeValue measurementTime) {
+ this.measurementTime = measurementTime;
+
+ return this;
+ }
+
/**
* @param outputTimeUnit Output time unit.
* @return This instance.
@@ -181,10 +216,24 @@ public class JmhIdeBenchmarkRunner {
OptionsBuilder builder = new OptionsBuilder();
builder.forks(forks);
- builder.warmupIterations(warmupIterations);
- builder.measurementIterations(measurementIterations);
- builder.timeUnit(outputTimeUnit);
- builder.threads(threads);
+
+ if (warmupIterations >= 0)
+ builder.warmupIterations(warmupIterations);
+
+ if (warmupTime != null)
+ builder.warmupTime(warmupTime);
+
+ if (measurementIterations > 0)
+ builder.measurementIterations(measurementIterations);
+
+ if (measurementTime != null)
+ builder.measurementTime(measurementTime);
+
+ if (outputTimeUnit != null)
+ builder.timeUnit(outputTimeUnit);
+
+ if (threads > 0)
+ builder.threads(threads);
if (benchmarkModes != null) {
for (Mode benchmarkMode : benchmarkModes)
@@ -200,8 +249,7 @@ public class JmhIdeBenchmarkRunner {
}
}
- if (jvmArgs != null)
- builder.jvmArgs(jvmArgs);
+ builder.jvmArgs(jvmArgs != null ? F.concat(DFLT_JVM_ARGS, jvmArgs) :
DFLT_JVM_ARGS);
if (output != null)
builder.output(output);
@@ -215,12 +263,13 @@ public class JmhIdeBenchmarkRunner {
}
/**
- * Run benchmarks.
+ * Run benchmarks and return results.
*
+ * @return Results.
* @throws Exception If failed.
*/
- public void run() throws Exception {
- new Runner(optionsBuilder().build()).run();
+ public Collection<RunResult> run() throws Exception {
+ return new Runner(optionsBuilder().build()).run();
}
/**
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhCacheWithInterceptorBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhCacheWithInterceptorBenchmark.java
index e2cb09afd99..37b867c370a 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhCacheWithInterceptorBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhCacheWithInterceptorBenchmark.java
@@ -21,6 +21,7 @@ import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
import org.apache.ignite.cache.CacheInterceptorAdapter;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
@@ -31,9 +32,6 @@ import org.openjdk.jmh.annotations.Param;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark cache with interceptor queries.
@@ -73,10 +71,8 @@ public class JmhCacheWithInterceptorBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhCacheWithInterceptorBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhCacheWithInterceptorBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlAggBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlAggBenchmark.java
index e767c1936de..fe924589dd2 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlAggBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlAggBenchmark.java
@@ -18,10 +18,8 @@
package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark aggregate SQL queries.
@@ -69,10 +67,8 @@ public class JmhSqlAggBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlAggBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlAggBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlCorrelateBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlCorrelateBenchmark.java
index 07004ae63ee..8d14421f06b 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlCorrelateBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlCorrelateBenchmark.java
@@ -19,10 +19,8 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark correlated SQL queries.
@@ -52,10 +50,8 @@ public class JmhSqlCorrelateBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlCorrelateBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlCorrelateBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlBenchmark.java
index 6cdb00ff48e..5bbc0a7d48d 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlBenchmark.java
@@ -20,10 +20,8 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import org.apache.ignite.IgniteDataStreamer;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark DML queries.
@@ -119,10 +117,8 @@ public class JmhSqlDmlBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlDmlBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlDmlBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlReplicatedBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlReplicatedBenchmark.java
index eb0407d2ee4..016e89734e2 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlReplicatedBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlDmlReplicatedBenchmark.java
@@ -20,9 +20,7 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.CacheWriteSynchronizationMode;
import org.apache.ignite.configuration.CacheConfiguration;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
/**
* Benchmark DML queries on replicated cache.
@@ -41,10 +39,8 @@ public class JmhSqlDmlReplicatedBenchmark extends
JmhSqlDmlBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlDmlReplicatedBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlDmlReplicatedBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlInsertBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlInsertBenchmark.java
index fa291430c59..d6f3c105f9b 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlInsertBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlInsertBenchmark.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
@@ -29,9 +30,6 @@ import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
import static java.lang.String.format;
import static java.util.stream.Collectors.joining;
@@ -111,11 +109,9 @@ public class JmhSqlInsertBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlInsertBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlInsertBenchmark.class.getSimpleName())
+ .run();
}
/** */
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlJoinBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlJoinBenchmark.java
index 611e6ff2947..1293420d1ed 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlJoinBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlJoinBenchmark.java
@@ -19,10 +19,8 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark JOIN queries.
@@ -76,10 +74,8 @@ public class JmhSqlJoinBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlJoinBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlJoinBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanBenchmark.java
index 42080465b80..05e06e60d81 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanBenchmark.java
@@ -19,10 +19,8 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark scan SQL queries.
@@ -87,10 +85,8 @@ public class JmhSqlScanBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlScanBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlScanBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanReplicatedBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanReplicatedBenchmark.java
index 9832bbe6dc6..28e27dca391 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanReplicatedBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlScanReplicatedBenchmark.java
@@ -20,9 +20,7 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
import org.apache.ignite.configuration.CacheConfiguration;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
/**
* Benchmark replicated scan SQL queries.
@@ -41,10 +39,8 @@ public class JmhSqlScanReplicatedBenchmark extends
JmhSqlScanBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlScanReplicatedBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlScanReplicatedBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSetOpBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSetOpBenchmark.java
index 09f8891218b..50be4f53a9c 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSetOpBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSetOpBenchmark.java
@@ -19,11 +19,9 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.profile.GCProfiler;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark set op SQL queries.
@@ -70,11 +68,9 @@ public class JmhSqlSetOpBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlSetOpBenchmark.class.getSimpleName())
- .addProfiler(GCProfiler.class)
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlSetOpBenchmark.class.getSimpleName())
+ .profilers(GCProfiler.class)
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSortBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSortBenchmark.java
index 8493a2a9138..888a40931c8 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSortBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlSortBenchmark.java
@@ -19,10 +19,8 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark sort SQL queries.
@@ -70,10 +68,8 @@ public class JmhSqlSortBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlSortBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlSortBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlUdfBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlUdfBenchmark.java
index c3d24ca055b..820b8e3972f 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlUdfBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/JmhSqlUdfBenchmark.java
@@ -20,10 +20,8 @@ package org.apache.ignite.internal.benchmarks.jmh.sql;
import java.util.List;
import org.apache.ignite.cache.query.annotations.QuerySqlFunction;
import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark user defined functions in SQL queries.
@@ -72,10 +70,8 @@ public class JmhSqlUdfBenchmark extends
JmhSqlAbstractBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(JmhSqlUdfBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhSqlUdfBenchmark.class.getSimpleName())
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/tpch/TpchBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/tpch/TpchBenchmark.java
index 8784b0d8f5f..e6471176bf7 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/tpch/TpchBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/sql/tpch/TpchBenchmark.java
@@ -39,6 +39,7 @@ import
org.apache.ignite.configuration.TransactionConfiguration;
import org.apache.ignite.indexing.IndexingQueryEngineConfiguration;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.IgniteInterruptedCheckedException;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import
org.apache.ignite.internal.processors.query.calcite.integration.tpch.TpchHelper;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
@@ -58,20 +59,13 @@ import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
import org.openjdk.jmh.infra.Blackhole;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Benchmark TPC-H SQL queries.
*/
@State(Scope.Benchmark)
-// Use @Fork(value = 0) to debug or attach profiler.
-@Fork(value = 1, jvmArgs = {
- "-Xms4g", "-Xmx4g",
- "-Dcalcite.volcano.dump.graphviz=false",
- "-Dcalcite.volcano.dump.sets=false"
-})
+// Use @Fork(0) to debug or attach profiler.
+@Fork(1)
@Threads(1)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@SuppressWarnings({"unused"})
@@ -327,10 +321,11 @@ public class TpchBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(TpchBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(TpchBenchmark.class.getSimpleName())
+ .jvmArguments("-Xms4g", "-Xmx4g",
+ "-Dcalcite.volcano.dump.graphviz=false",
+ "-Dcalcite.volcano.dump.sets=false")
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/streamer/JmhStreamerAddDataBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/streamer/JmhStreamerAddDataBenchmark.java
index 417860bd302..c362fc7a648 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/streamer/JmhStreamerAddDataBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/streamer/JmhStreamerAddDataBenchmark.java
@@ -29,6 +29,7 @@ import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CacheWriteSynchronizationMode;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.logger.NullLogger;
import org.jetbrains.annotations.NotNull;
import org.openjdk.jmh.annotations.Benchmark;
@@ -44,10 +45,6 @@ import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.annotations.Threads;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.RunnerException;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
@@ -55,7 +52,7 @@ import static
org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
* DataStreamerImpl.addData(Collection) vs DataStreamerImpl.addData(Key,
Value).
*/
@BenchmarkMode(Mode.AverageTime)
-@Fork(value = 1, jvmArgsAppend = {"-Xms1g", "-Xmx3g", "-server",
"-XX:+AggressiveOpts", "-XX:MaxMetaspaceSize=256m"})
+@Fork(1)
@Measurement(iterations = 11)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Benchmark)
@@ -209,11 +206,10 @@ public class JmhStreamerAddDataBenchmark {
*
* @param args Args.
*/
- public static void main(String[] args) throws RunnerException {
- final Options options = new OptionsBuilder()
- .include(JmhStreamerAddDataBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ public static void main(String[] args) throws Exception {
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(JmhStreamerAddDataBenchmark.class.getSimpleName())
+ .jvmArguments("-Xms1g", "-Xmx3g", "-server",
"-XX:MaxMetaspaceSize=256m")
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/thin/JmhThinClientCacheBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/thin/JmhThinClientCacheBenchmark.java
index 88e6a87171d..3398e7e8fda 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/thin/JmhThinClientCacheBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/thin/JmhThinClientCacheBenchmark.java
@@ -64,18 +64,18 @@ public class JmhThinClientCacheBenchmark extends
JmhThinClientAbstractBenchmark
*/
public static void main(String[] args) throws Exception {
JmhIdeBenchmarkRunner runner = JmhIdeBenchmarkRunner.create()
- .forks(1)
- .threads(4)
- .benchmarks(JmhThinClientCacheBenchmark.class.getSimpleName())
- .jvmArguments("-Xms4g", "-Xmx4g");
+ .forks(1)
+ .threads(4)
+ .benchmarks(JmhThinClientCacheBenchmark.class.getSimpleName())
+ .jvmArguments("-Xms4g", "-Xmx4g")
+ .measurementIterations(10)
+ .warmupIterations(10);
- runner
- .benchmarkModes(Mode.Throughput)
- .run();
+ runner.run();
runner
- .benchmarkModes(Mode.AverageTime)
- .outputTimeUnit(TimeUnit.MICROSECONDS)
- .run();
+ .benchmarkModes(Mode.AverageTime)
+ .outputTimeUnit(TimeUnit.MICROSECONDS)
+ .run();
}
}
diff --git
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/IndexFindBenchmark.java
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/IndexFindBenchmark.java
index b63525fbe4c..546504ae60a 100644
---
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/IndexFindBenchmark.java
+++
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/IndexFindBenchmark.java
@@ -26,6 +26,7 @@ import
org.apache.ignite.cache.query.annotations.QuerySqlField;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.benchmarks.jmh.runner.JmhIdeBenchmarkRunner;
import org.apache.ignite.internal.cache.query.index.sorted.IndexKeyType;
import org.apache.ignite.internal.cache.query.index.sorted.IndexPlainRowImpl;
import org.apache.ignite.internal.cache.query.index.sorted.IndexRow;
@@ -45,9 +46,6 @@ import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.TearDown;
import org.openjdk.jmh.annotations.Warmup;
-import org.openjdk.jmh.runner.Runner;
-import org.openjdk.jmh.runner.options.Options;
-import org.openjdk.jmh.runner.options.OptionsBuilder;
/**
* Index find benchmark.
@@ -178,11 +176,9 @@ public class IndexFindBenchmark {
* @throws Exception Exception.
*/
public static void main(String[] args) throws Exception {
- final Options options = new OptionsBuilder()
- .include(IndexFindBenchmark.class.getSimpleName())
- .build();
-
- new Runner(options).run();
+ JmhIdeBenchmarkRunner.create()
+ .benchmarks(IndexFindBenchmark.class.getSimpleName())
+ .run();
}
/** */
diff --git
a/modules/unsafe/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
b/modules/unsafe/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
index d09bac8a069..0dd82baa826 100644
---
a/modules/unsafe/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
+++
b/modules/unsafe/src/main/java/org/apache/ignite/internal/util/FeatureChecker.java
@@ -20,33 +20,34 @@ package org.apache.ignite.internal.util;
* Class extracted for fields from GridUnsafe to be absolutely independent
with current and future static block
* initialization effects.
*/
-class FeatureChecker {
+public class FeatureChecker {
/** Required Options to Run on Java 17 and higher. */
- public static final String JAVA_17_OPTIONS =
- "--add-opens=java.base/jdk.internal.access=ALL-UNNAMED\n" +
- "--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED\n" +
- "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED\n" +
- "--add-opens=java.base/sun.util.calendar=ALL-UNNAMED\n" +
- "--add-opens=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED\n" +
- "--add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED\n" +
-
"--add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED\n" +
- "--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED\n"
+
- "--add-opens=java.base/java.io=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.nio=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.util=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.net=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.util.concurrent=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.lang=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.lang.invoke=ALL-UNNAMED\n" +
- "--add-opens=java.base/java.math=ALL-UNNAMED\n" +
- "--add-opens=java.sql/java.sql=ALL-UNNAMED";
+ public static final String JAVA_17_OPTIONS = """
+ --add-opens=java.base/jdk.internal.access=ALL-UNNAMED
+ --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
+ --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
+ --add-opens=java.base/sun.util.calendar=ALL-UNNAMED
+ --add-opens=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
+ --add-opens=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
+
--add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
+ --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
+ --add-opens=java.base/java.io=ALL-UNNAMED
+ --add-opens=java.base/java.nio=ALL-UNNAMED
+ --add-opens=java.base/java.util=ALL-UNNAMED
+ --add-opens=java.base/java.net=ALL-UNNAMED
+ --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
+ --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED
+ --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
+ --add-opens=java.base/java.lang=ALL-UNNAMED
+ --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
+ --add-opens=java.base/java.math=ALL-UNNAMED
+ --add-opens=java.sql/java.sql=ALL-UNNAMED
+ --add-opens=java.base/java.time=ALL-UNNAMED
+ """;
/** Java version specific warning to be added in case access failed */
public static final String JAVA_VER_SPECIFIC_WARN =
"\nPlease add the following parameters to JVM startup settings and
restart the application: {parameters: " +
- JAVA_17_OPTIONS +
- "\n}" +
+ JAVA_17_OPTIONS + "}" +
"\nSee
https://ignite.apache.org/docs/latest/quick-start/java#running-ignite-with-java-17-or-later
for more information.";
}