Commit 091d729
committed
PublisherAsBlockingIterable LinkedBlockingQueue -> SpscBlockingQueue
Motivation:
LinkedBlockingQueue allows for multiple producers and multiple consumers.
It uses LockSupport park in offer and unpark in take. LockSupport unpark
on the EventLoop thread has been shown to impact throughput during benchmarks.
Before:
```
Running 30s test @ http://localhost:8080/medium, using 'ServiceTalkGrpcBlockingClientStrAgg' client
1024 threads and 1024 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency - - - -
Req/Sec 0.01k - 0.01k -
262338 requests in 30s
Requests/sec: 8744.60
Transfer/sec: -
OK: 262338
KO: 0
```
After:
```
Running 30s test @ http://localhost:8080/medium, using 'ServiceTalkGrpcBlockingClientStrAgg' client
1024 threads and 1024 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency - - - -
Req/Sec 0.01k - 0.01k -
326478 requests in 30s
Requests/sec: 10882.60
Transfer/sec: -
OK: 326478
KO: 0
```1 parent 450096e commit 091d729
File tree
1 file changed
+372
-3
lines changed- servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api
1 file changed
+372
-3
lines changed
0 commit comments