2 Apr
2020
2 Apr
'20
6:59 p.m.
On Thu, 2 Apr 2020 at 17:43, Jan Hafer via Boost
Yes, I do use 1 buffer/queue per thread.
So you're saying that circular_buffer is slower on a given thread when other threads are accessing their own circular_buffer in parallel? That sounds unlikely to be circular buffer's fault. The first thing to check is that the memory placement of your circular buffer does not result in false sharing with other threads. More generally you could be stalling due to any inter-connection, such as crossing NUMA domains or talking to hardware. Otherwise you could be saturating the execution ports of your core and thus not get the expected speed-up from hyper-threading, but in any case you'd be the best throughput overall.