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`:

in violet, the 10 completion threads (1 per session), consuming `40 * 10
samples = 400 samples` -> 40% of a single core
this PR:

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]