activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From franz1981 <...@git.apache.org>
Subject [GitHub] activemq-artemis issue #1144: ARTEMIS-1078: Improved thread pool
Date Fri, 31 Mar 2017 17:06:40 GMT
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message