Github user franz1981 commented on the issue:
https://github.com/apache/activemq-artemis/pull/1144
@bgutjahr These are the preliminary results from the benchmark
[here](https://github.com/franz1981/activemq-artemis/tree/jmh_improved_thread_pool),
see the
[ThreadPoolBenchmark](https://github.com/franz1981/activemq-artemis/blob/e4b815281dc14c540821bb672e2bd0e5592f5133/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/benchmarks/pools/ThreadPoolBenchmark.java)
if you want to reproduce the test or verify if is fair enough.
The type **new** is your version of the pool, **old** is the original while
**baseline** is the JDK fixed thread executor service.
The **execute** is the throughput of the producer thread to submit a task
to the pool, while
**thread_1**, **thread_2** and **thread_3** are the throughput to execute
the tasks on the given pooled thread (3 in total).
As is visible by the results the task submission is slower than the
original while the pooled threads are faster to consume, altought with an
higher variance: maybe is dependent by a synchronized operation or any queuing
effect.
```
Benchmark (type) Mode
Cnt Score Error Units
ThreadPoolBenchmark.tpt:execute baseline thrpt
5 4095676.139 ± 248391.951 ops/s
ThreadPoolBenchmark.tpt:thread_1 baseline thrpt
5 436573.539 ± 78582.478 ops/s
ThreadPoolBenchmark.tpt:thread_2 baseline thrpt
5 441567.641 ± 111930.503 ops/s
ThreadPoolBenchmark.tpt:thread_3 baseline thrpt
5 420329.280 ± 78979.112 ops/s
ThreadPoolBenchmark.tpt:execute old thrpt
5 5273631.677 ± 2606806.562 ops/s
ThreadPoolBenchmark.tpt:thread_1 old thrpt
5 622163.951 ± 422993.497 ops/s
ThreadPoolBenchmark.tpt:thread_2 old thrpt
5 582100.488 ± 193436.998 ops/s
ThreadPoolBenchmark.tpt:thread_3 old thrpt
5 640375.952 ± 190881.796 ops/s
ThreadPoolBenchmark.tpt:execute new thrpt
5 3628826.588 ± 2837645.169 ops/s
ThreadPoolBenchmark.tpt:thread_1 new thrpt
5 1057520.974 ± 3212217.630 ops/s
ThreadPoolBenchmark.tpt:thread_2 new thrpt
5 1028641.600 ± 2629406.160 ops/s
ThreadPoolBenchmark.tpt:thread_3 new thrpt
5 1026665.278 ± 2753389.072 ops/s
```
In the next days I'll take a look to the code too and I'll build a
concurrency sanity test to find out if everything is working as expected.
Anyway god job, for me is more balanced than the original version :+1:
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---