franz1981 edited a comment on pull request #44:
URL: https://github.com/apache/qpid-jms/pull/44#issuecomment-951904530


   These are the results of this change.
   Running a benchmark with:
   - 10 non-durable producer sessions
   - 5 sessions per connection
   - 2 connections handled by 2 separate threads (ie each thread is handling 
exclusively 5 sessions using the same connection)
   - 100 bytes messages
   - max 10 in-flight completions per producer
   
   With `main`:
   ```
    -> TEST        12,040  msg/sec
    -> TEST        12,340  msg/sec
    -> TEST        12,081  msg/sec
    -> TEST        12,367  msg/sec
    -> TEST        11,971  msg/sec
    -> TEST        12,323  msg/sec
    -> TEST        12,026  msg/sec
    -> TEST        12,267  msg/sec
    -> TEST        12,120  msg/sec
    -> TEST        12,223  msg/sec
    -> *   121,764 msg/sec
   ```
   with this PR:
   ```
    -> TEST        15,695  msg/sec
    -> TEST        15,441  msg/sec
    -> TEST        15,681  msg/sec
    -> TEST        15,455  msg/sec
    -> TEST        15,704  msg/sec
    -> TEST        15,451  msg/sec
    -> TEST        15,683  msg/sec
    -> TEST        15,485  msg/sec
    -> TEST        15,676  msg/sec
    -> TEST        15,436  msg/sec
    -> *   155,713 msg/sec
   ```
   TLDR 
   ```
   121,764 msg/sec vs 155,713 msg/sec
   ```
   
   The behaviour is, for `main`:
   
![image](https://user-images.githubusercontent.com/13125299/138881020-0ba3cdeb-cbf4-41d5-866b-7a3b84a20d63.png)
   in violet, the 10 completion threads (1 per session), consuming `40 * 10 
samples = 400 samples` -> 40% of a single core
   
   this PR:
   
![image](https://user-images.githubusercontent.com/13125299/138881279-62f69a99-4785-42d4-b5fd-812482c24709.png)
   in violet, the 2 completion threads, (1 per connection), consuming `71 * 2 
samples = 142 samples` -> ~14% of a single core
   
   The other threads perform nearly the same amount of work, meaning that 
sharing connections now save a considerable amount of CPU time and memory too
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to