diff --git a/.github/checkstyle/checkstyle.xml b/.github/checkstyle/checkstyle.xml
index 643c0d45e..02fb3f26e 100644
--- a/.github/checkstyle/checkstyle.xml
+++ b/.github/checkstyle/checkstyle.xml
@@ -166,7 +166,7 @@
-
+
diff --git a/benchmark/pom.xml b/benchmark/pom.xml
new file mode 100644
index 000000000..bb80ced4c
--- /dev/null
+++ b/benchmark/pom.xml
@@ -0,0 +1,34 @@
+
+
+ 4.0.0
+
+ org.dromara.dynamictp
+ dynamic-tp-all
+ ${revision}
+ ../pom.xml
+
+ dynamic-tp-benchmark
+
+
+
+ org.dromara.dynamictp
+ dynamic-tp-core
+
+
+
+ org.dromara.dynamictp
+ dynamic-tp-extension-agent
+
+
+
+ org.openjdk.jmh
+ jmh-core
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+
+
+
+
diff --git a/benchmark/src/main/java/org/dromara/dynamictp/benchmark/BenchmarkRunner.java b/benchmark/src/main/java/org/dromara/dynamictp/benchmark/BenchmarkRunner.java
new file mode 100644
index 000000000..28ccafa33
--- /dev/null
+++ b/benchmark/src/main/java/org/dromara/dynamictp/benchmark/BenchmarkRunner.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.dromara.dynamictp.benchmark;
+
+import org.openjdk.jmh.results.format.ResultFormatType;
+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;
+
+/**
+ * BenchmarkRunner related
+ *
+ * @author yanhom
+ * @since 1.2.1
+ **/
+public class BenchmarkRunner {
+
+ public static void main(String[] args) throws RunnerException {
+ Options options = new OptionsBuilder()
+ .include(ExecutorBenchmark.class.getSimpleName())
+ .resultFormat(ResultFormatType.JSON)
+ .result("executor-benchmark-results.json")
+ .build();
+
+ new Runner(options).run();
+ }
+}
+
diff --git a/benchmark/src/main/java/org/dromara/dynamictp/benchmark/ExecutorBenchmark.java b/benchmark/src/main/java/org/dromara/dynamictp/benchmark/ExecutorBenchmark.java
new file mode 100644
index 000000000..c185f88d6
--- /dev/null
+++ b/benchmark/src/main/java/org/dromara/dynamictp/benchmark/ExecutorBenchmark.java
@@ -0,0 +1,186 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.dromara.dynamictp.benchmark;
+
+import com.google.common.collect.Sets;
+import org.dromara.dynamictp.core.executor.DtpExecutor;
+import org.dromara.dynamictp.core.support.ThreadPoolBuilder;
+import org.dromara.dynamictp.core.support.task.wrapper.TaskWrappers;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Param;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+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.infra.Blackhole;
+
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * ExecutorBenchmark related
+ *
+ * @author yanhom
+ * @since 1.2.1
+ **/
+@BenchmarkMode(Mode.Throughput)
+@OutputTimeUnit(TimeUnit.SECONDS)
+@State(Scope.Thread)
+@Warmup(iterations = 5)
+public class ExecutorBenchmark {
+
+ @Param({"100", "2000", "4000", "6000", "8000"})
+ private int max;
+
+ @Param({"MEDIUM"})
+ private TaskType taskType;
+
+ private ThreadPoolExecutor standardExecutor;
+ private DtpExecutor dtpExecutor;
+
+ public enum TaskType {
+ // 轻量级任务,执行时间很短
+ LIGHT,
+ // 中等任务,有一定计算量
+ MEDIUM,
+ // 重量级任务,执行时间较长或有IO操作
+ HEAVY
+ }
+
+ @Setup
+ public void setup() {
+ standardExecutor = new ThreadPoolExecutor(
+ 4,
+ 8,
+ 60L,
+ TimeUnit.SECONDS,
+ new LinkedBlockingQueue<>(1024),
+ new ThreadFactory() {
+ private final AtomicInteger counter = new AtomicInteger(1);
+ @Override
+ public Thread newThread(Runnable r) {
+ return new Thread(r, "standard-pool-" + counter.getAndIncrement());
+ }
+ },
+ new ThreadPoolExecutor.CallerRunsPolicy()
+ );
+
+ dtpExecutor = ThreadPoolBuilder.newBuilder()
+ .corePoolSize(4)
+ .maximumPoolSize(8)
+ .keepAliveTime(60)
+ .threadFactory("dtp-test-pool")
+ .runTimeout(100)
+ .queueCapacity(100)
+ .queueCapacity(1024)
+ .taskWrappers(TaskWrappers.getInstance().getByNames(Sets.newHashSet("ttl", "mdc")))
+ .rejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy())
+ .buildDynamic();
+ }
+
+ @TearDown
+ public void tearDown() {
+ standardExecutor.shutdown();
+ dtpExecutor.shutdown();
+ try {
+ if (!standardExecutor.awaitTermination(5, TimeUnit.SECONDS)) {
+ standardExecutor.shutdownNow();
+ }
+ if (!dtpExecutor.awaitTermination(5, TimeUnit.SECONDS)) {
+ dtpExecutor.shutdownNow();
+ }
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ @Benchmark
+ @Threads(1)
+ public void testStandardSubmit(Blackhole bh) {
+ executeTasksAndWait(standardExecutor, bh);
+ }
+
+ @Benchmark
+ @Threads(1)
+ public void testDtpSubmit(Blackhole bh) {
+ executeTasksAndWait(dtpExecutor, bh);
+ }
+
+ @Benchmark
+ @Threads(4)
+ public void test8ThreadsStandardSubmit(Blackhole bh) {
+ executeTasksAndWait(standardExecutor, bh);
+ }
+
+ @Benchmark
+ @Threads(4)
+ public void test8ThreadsDtpSubmit(Blackhole bh) {
+ executeTasksAndWait(dtpExecutor, bh);
+ }
+
+ private void executeTasksAndWait(ThreadPoolExecutor executor, Blackhole bh) {
+ executor.submit(() -> {
+ try {
+ int res = 0;
+ switch (taskType) {
+ case LIGHT:
+ res = max * max;
+ break;
+ case MEDIUM:
+ res = calculatePrimes(max);
+ break;
+ case HEAVY:
+ res = calculatePrimes(max);
+ Thread.sleep(2);
+ break;
+ default:
+ break;
+ }
+ bh.consume(res);
+ return res;
+ } catch (Exception e) {
+ return -1;
+ }
+ });
+ }
+
+ private int calculatePrimes(int max) {
+ int count = 0;
+ for (int i = 2; i <= max; i++) {
+ boolean isPrime = true;
+ for (int j = 2; j <= Math.sqrt(i); j++) {
+ if (i % j == 0) {
+ isPrime = false;
+ break;
+ }
+ }
+ if (isPrime) {
+ count++;
+ }
+ }
+ return count;
+ }
+}
diff --git a/benchmark/src/main/resources/executor-benchmark-results.json b/benchmark/src/main/resources/executor-benchmark-results.json
new file mode 100644
index 000000000..65ad47c41
--- /dev/null
+++ b/benchmark/src/main/resources/executor-benchmark-results.json
@@ -0,0 +1,864 @@
+[
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testDtpSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "100",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 835879.4802796174,
+ "scoreError" : 19897.455636183637,
+ "scoreConfidence" : [
+ 815982.0246434337,
+ 855776.935915801
+ ],
+ "scorePercentiles" : {
+ "0.0" : 772808.9079652693,
+ "50.0" : 845641.620886573,
+ "90.0" : 857708.265505212,
+ "95.0" : 859526.055539222,
+ "99.0" : 859679.8298281895,
+ "99.9" : 859679.8298281895,
+ "99.99" : 859679.8298281895,
+ "99.999" : 859679.8298281895,
+ "99.9999" : 859679.8298281895,
+ "100.0" : 859679.8298281895
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 837083.6811061229,
+ 836988.3955275505,
+ 807880.9110136031,
+ 772808.9079652693,
+ 773014.3159528865
+ ],
+ [
+ 794317.0851141195,
+ 847147.8725064938,
+ 856735.6099320437,
+ 845641.620886573,
+ 855316.7163251701
+ ],
+ [
+ 844726.5474328864,
+ 852709.3252940127,
+ 855230.0055931485,
+ 837438.7249005582,
+ 859167.2488649645
+ ],
+ [
+ 852366.293103543,
+ 859679.8298281895,
+ 834931.1398763611,
+ 851008.8835481262,
+ 848208.331094282
+ ],
+ [
+ 844581.5439933728,
+ 839751.308302802,
+ 853500.3644639668,
+ 849520.1555104096,
+ 787232.1888539805
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testDtpSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "2000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 96505.45836229522,
+ "scoreError" : 1076.1715196902455,
+ "scoreConfidence" : [
+ 95429.28684260497,
+ 97581.62988198547
+ ],
+ "scorePercentiles" : {
+ "0.0" : 93670.57370562815,
+ "50.0" : 96594.59497566153,
+ "90.0" : 98126.05019405008,
+ "95.0" : 98144.98322822564,
+ "99.0" : 98145.49775872249,
+ "99.9" : 98145.49775872249,
+ "99.99" : 98145.49775872249,
+ "99.999" : 98145.49775872249,
+ "99.9999" : 98145.49775872249,
+ "100.0" : 98145.49775872249
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 96027.6890203491,
+ 95579.09907433369,
+ 96573.59109296952,
+ 94768.51352262578,
+ 98143.78265706633
+ ],
+ [
+ 97444.16733327185,
+ 95018.93368270407,
+ 94408.58197815283,
+ 97569.1531838222,
+ 97388.60317209976
+ ],
+ [
+ 98015.08841042618,
+ 97326.94670397948,
+ 98145.49775872249,
+ 98108.83556957358,
+ 96343.26156327194
+ ],
+ [
+ 96594.59497566153,
+ 96886.40956516683,
+ 98015.47935740056,
+ 96182.56319019997,
+ 93888.605026665
+ ],
+ [
+ 94513.96854793667,
+ 93670.57370562815,
+ 96352.12523005734,
+ 97556.16618325676,
+ 98114.22855203926
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testDtpSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "4000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 40681.04605703,
+ "scoreError" : 334.638562946629,
+ "scoreConfidence" : [
+ 40346.40749408337,
+ 41015.68461997663
+ ],
+ "scorePercentiles" : {
+ "0.0" : 39276.96271051711,
+ "50.0" : 40772.080025229414,
+ "90.0" : 41174.442462232786,
+ "95.0" : 41201.323486827634,
+ "99.0" : 41207.32032574715,
+ "99.9" : 41207.32032574715,
+ "99.99" : 41207.32032574715,
+ "99.999" : 41207.32032574715,
+ "99.9999" : 41207.32032574715,
+ "100.0" : 41207.32032574715
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 41187.330862682094,
+ 40860.97643228561,
+ 40667.33369922854,
+ 39875.63960208979,
+ 40808.3165950709
+ ],
+ [
+ 40555.39904133374,
+ 40718.209253956,
+ 40934.940110677926,
+ 40908.485605861955,
+ 40853.60377713414
+ ],
+ [
+ 39276.96271051711,
+ 40618.57635842393,
+ 40772.080025229414,
+ 40230.32167932655,
+ 40933.15804032801
+ ],
+ [
+ 41207.32032574715,
+ 41165.850195266576,
+ 40675.42629983596,
+ 40556.700773688746,
+ 41091.8078583088
+ ],
+ [
+ 39919.82883357655,
+ 40591.35818943041,
+ 40978.874306332094,
+ 40896.45457092153,
+ 40741.19627849657
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testDtpSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "6000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 24098.037020718442,
+ "scoreError" : 118.92621134496876,
+ "scoreConfidence" : [
+ 23979.110809373473,
+ 24216.963232063412
+ ],
+ "scorePercentiles" : {
+ "0.0" : 23768.645427787593,
+ "50.0" : 24162.502073138323,
+ "90.0" : 24260.203643349883,
+ "95.0" : 24284.61911787857,
+ "99.0" : 24289.265832308476,
+ "99.9" : 24289.265832308476,
+ "99.99" : 24289.265832308476,
+ "99.999" : 24289.265832308476,
+ "99.9999" : 24289.265832308476,
+ "100.0" : 24289.265832308476
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 23982.931542750703,
+ 23964.214090032005,
+ 24046.02936605224,
+ 23862.261403498338,
+ 24225.915240963932
+ ],
+ [
+ 24251.15488277728,
+ 24273.77678420879,
+ 24011.0983726943,
+ 23979.923026919078,
+ 24238.814307597437
+ ],
+ [
+ 23768.645427787593,
+ 23908.81157813695,
+ 24162.502073138323,
+ 24241.980150274732,
+ 23780.724249675368
+ ],
+ [
+ 24077.68490480317,
+ 24197.53646088712,
+ 24198.291479172258,
+ 24037.338425911614,
+ 24239.094669814083
+ ],
+ [
+ 24289.265832308476,
+ 24240.561271730046,
+ 24242.273855321302,
+ 24190.53056999225,
+ 24039.565551513704
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testDtpSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "8000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 16477.238900139142,
+ "scoreError" : 228.68439546131336,
+ "scoreConfidence" : [
+ 16248.554504677828,
+ 16705.923295600456
+ ],
+ "scorePercentiles" : {
+ "0.0" : 15944.430607470855,
+ "50.0" : 16623.543545732417,
+ "90.0" : 16800.747617198922,
+ "95.0" : 16817.511764616032,
+ "99.0" : 16823.200549239868,
+ "99.9" : 16823.200549239868,
+ "99.99" : 16823.200549239868,
+ "99.999" : 16823.200549239868,
+ "99.9999" : 16823.200549239868,
+ "100.0" : 16823.200549239868
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 15944.430607470855,
+ 16365.390325495637,
+ 15995.946673493052,
+ 16125.000291194025,
+ 16085.662268303851
+ ],
+ [
+ 16237.842213643718,
+ 16159.301446084488,
+ 16027.209336392842,
+ 16137.655546608883,
+ 16201.613200427111
+ ],
+ [
+ 16726.25151397067,
+ 16697.713026471527,
+ 16692.67424902825,
+ 16753.865768471336,
+ 16753.585262747412
+ ],
+ [
+ 16732.229353251434,
+ 16623.543545732417,
+ 16669.4156825611,
+ 16823.200549239868,
+ 16654.425769884347
+ ],
+ [
+ 16608.23811558137,
+ 16804.237933827088,
+ 16798.420739446814,
+ 16616.325815098866,
+ 16696.79326905147
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testStandardSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "100",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 2024530.591058425,
+ "scoreError" : 24116.539601117427,
+ "scoreConfidence" : [
+ 2000414.0514573075,
+ 2048647.1306595423
+ ],
+ "scorePercentiles" : {
+ "0.0" : 1982516.6755444333,
+ "50.0" : 2019873.2512882825,
+ "90.0" : 2073343.650756332,
+ "95.0" : 2102288.4293866465,
+ "99.0" : 2107612.321198558,
+ "99.9" : 2107612.321198558,
+ "99.99" : 2107612.321198558,
+ "99.999" : 2107612.321198558,
+ "99.9999" : 2107612.321198558,
+ "100.0" : 2107612.321198558
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 1992469.2641976194,
+ 1994759.5835302651,
+ 2011924.9783304564,
+ 2022600.7949903489,
+ 2034566.4773653138
+ ],
+ [
+ 2044482.091184728,
+ 1999814.7261992493,
+ 2036399.8525117594,
+ 2043947.1034784091,
+ 2042859.7714767663
+ ],
+ [
+ 2019873.2512882825,
+ 1995127.8284573886,
+ 2007616.9358470612,
+ 1998245.334024759,
+ 2022065.7694299472
+ ],
+ [
+ 1985354.5861612302,
+ 2003272.5274571844,
+ 2001251.028938096,
+ 1982516.6755444333,
+ 2006358.7174283578
+ ],
+ [
+ 2051892.4148911396,
+ 2056057.9862157607,
+ 2062328.741154651,
+ 2107612.321198558,
+ 2089866.0151588537
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testStandardSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "2000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 102962.75035792969,
+ "scoreError" : 601.2503379251723,
+ "scoreConfidence" : [
+ 102361.50002000452,
+ 103564.00069585486
+ ],
+ "scorePercentiles" : {
+ "0.0" : 100589.79715474774,
+ "50.0" : 103272.58799110886,
+ "90.0" : 103760.72904311687,
+ "95.0" : 104026.68645549331,
+ "99.0" : 104116.32078278087,
+ "99.9" : 104116.32078278087,
+ "99.99" : 104116.32078278087,
+ "99.999" : 104116.32078278087,
+ "99.9999" : 104116.32078278087,
+ "100.0" : 104116.32078278087
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 103565.00420332824,
+ 100589.79715474774,
+ 103513.78331164381,
+ 102591.49593303356,
+ 102792.21443713512
+ ],
+ [
+ 102325.23866182845,
+ 103036.85359553211,
+ 103107.43472473524,
+ 102297.0846683748,
+ 103326.91044250756
+ ],
+ [
+ 103722.85527731321,
+ 103404.01001235774,
+ 102850.59778174109,
+ 103274.68179542778,
+ 103817.53969182234
+ ],
+ [
+ 103539.36486741598,
+ 102399.53443744319,
+ 103444.26386253507,
+ 102359.31889384275,
+ 103479.16262033381
+ ],
+ [
+ 103673.97377694117,
+ 103272.58799110886,
+ 104116.32078278087,
+ 101506.74445528393,
+ 102061.98556902874
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testStandardSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "4000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 41844.18636584237,
+ "scoreError" : 246.58991369253627,
+ "scoreConfidence" : [
+ 41597.59645214983,
+ 42090.776279534904
+ ],
+ "scorePercentiles" : {
+ "0.0" : 40986.73341838288,
+ "50.0" : 41882.63870064468,
+ "90.0" : 42199.94798983034,
+ "95.0" : 42286.64508487596,
+ "99.0" : 42309.044955223,
+ "99.9" : 42309.044955223,
+ "99.99" : 42309.044955223,
+ "99.999" : 42309.044955223,
+ "99.9999" : 42309.044955223,
+ "100.0" : 42309.044955223
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 41882.63870064468,
+ 41744.61375638908,
+ 41819.820948860266,
+ 41617.721087440965,
+ 42309.044955223
+ ],
+ [
+ 42045.37019115379,
+ 41841.68396943274,
+ 41631.01730800342,
+ 41704.7497841965,
+ 42073.91990425318
+ ],
+ [
+ 41967.60012674226,
+ 41631.146893697514,
+ 42080.06203574377,
+ 42091.88002827002,
+ 41541.123482294526
+ ],
+ [
+ 41691.11989967058,
+ 42133.35812889493,
+ 42171.70694198779,
+ 41330.2986335887,
+ 40986.73341838288
+ ],
+ [
+ 41958.7257579559,
+ 42234.37872073287,
+ 41287.63688403775,
+ 42176.99416922865,
+ 42151.31341923346
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testStandardSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "6000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 24421.991900186054,
+ "scoreError" : 353.59787358267147,
+ "scoreConfidence" : [
+ 23768.394026603382,
+ 24475.589773768726
+ ],
+ "scorePercentiles" : {
+ "0.0" : 23071.77658872453,
+ "50.0" : 24234.665571961857,
+ "90.0" : 24638.749496464687,
+ "95.0" : 24658.36278645418,
+ "99.0" : 24666.34820228978,
+ "99.9" : 24666.34820228978,
+ "99.99" : 24666.34820228978,
+ "99.999" : 24666.34820228978,
+ "99.9999" : 24666.34820228978,
+ "100.0" : 24666.34820228978
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 24629.174542583765,
+ 24234.665571961857,
+ 24639.730149504445,
+ 24666.34820228978,
+ 24013.148353807024
+ ],
+ [
+ 24218.87198660302,
+ 24563.91735119501,
+ 24553.246124015022,
+ 24372.07927855178,
+ 24538.369977505812
+ ],
+ [
+ 24370.033612120453,
+ 24622.083011965075,
+ 24240.48544207802,
+ 24545.860456254624,
+ 24638.095727771517
+ ],
+ [
+ 23754.67404893567,
+ 23739.607210700233,
+ 23661.39556451895,
+ 23639.18446206984,
+ 23771.06266492151
+ ],
+ [
+ 23498.967402402424,
+ 23071.77658872453,
+ 23338.742807054266,
+ 23773.96102058579,
+ 23954.31594653106
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ },
+ {
+ "jmhVersion" : "1.36",
+ "benchmark" : "org.dromara.dynamictp.benchmark.ExecutorBenchmark.testStandardSubmit",
+ "mode" : "thrpt",
+ "threads" : 1,
+ "forks" : 5,
+ "jvm" : "D:\\java8\\java-se-8u41-ri\\jre\\bin\\java.exe",
+ "jvmArgs" : [
+ "-Dvisualvm.id=2278179260565700",
+ "-javaagent:D:\\IntelliJ IDEA 2024.1.4\\lib\\idea_rt.jar=1579:D:\\IntelliJ IDEA 2024.1.4\\bin",
+ "-Dfile.encoding=UTF-8"
+ ],
+ "jdkVersion" : "1.8.0_41",
+ "vmName" : "OpenJDK Client VM",
+ "vmVersion" : "25.40-b25",
+ "warmupIterations" : 5,
+ "warmupTime" : "10 s",
+ "warmupBatchSize" : 1,
+ "measurementIterations" : 5,
+ "measurementTime" : "10 s",
+ "measurementBatchSize" : 1,
+ "params" : {
+ "max" : "8000",
+ "taskType" : "MEDIUM"
+ },
+ "primaryMetric" : {
+ "score" : 16521.767304907597,
+ "scoreError" : 88.15687309478982,
+ "scoreConfidence" : [
+ 16433.610431812805,
+ 16609.924178002388
+ ],
+ "scorePercentiles" : {
+ "0.0" : 16264.927174329181,
+ "50.0" : 16561.192321076844,
+ "90.0" : 16636.84276023751,
+ "95.0" : 16651.2448011043,
+ "99.0" : 16653.865846519366,
+ "99.9" : 16653.865846519366,
+ "99.99" : 16653.865846519366,
+ "99.999" : 16653.865846519366,
+ "99.9999" : 16653.865846519366,
+ "100.0" : 16653.865846519366
+ },
+ "scoreUnit" : "ops/s",
+ "rawData" : [
+ [
+ 16381.942803082016,
+ 16631.31858141641,
+ 16482.953413865394,
+ 16620.31962609732,
+ 16303.565192651096
+ ],
+ [
+ 16557.98284385913,
+ 16602.776951628442,
+ 16605.998364679246,
+ 16617.067982421475,
+ 16466.922440418817
+ ],
+ [
+ 16355.04925035902,
+ 16645.129028469153,
+ 16604.224709508504,
+ 16590.82646841938,
+ 16386.74464754489
+ ],
+ [
+ 16448.99691399792,
+ 16653.865846519366,
+ 16491.486174841586,
+ 16627.643715889506,
+ 16371.267809008117
+ ],
+ [
+ 16264.927174329181,
+ 16561.192321076844,
+ 16547.20889601228,
+ 16608.180035706322,
+ 16616.59143088852
+ ]
+ ]
+ },
+ "secondaryMetrics" : {
+ }
+ }
+]
+
+
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index 0d4ec3595..6749f6a47 100644
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -62,7 +62,7 @@
0.6.0
4.2.20
- 1.35
+ 1.36
2.0.2
1.15.5
@@ -263,14 +263,12 @@
org.openjdk.jmh
jmh-core
${jmh.version}
- test
org.openjdk.jmh
jmh-generator-annprocess
${jmh.version}
- test
diff --git a/pom.xml b/pom.xml
index fac91a9fb..d11eb5728 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
test
dependencies
spring
+ benchmark