Simon 1 thing you may want to test is 10-20 senders to 1 reciever.
 Multiple senders have completely diffirent behaviour and can create a lot
of contention around locks / interlocked calls . Also checks what happens
to CPU when the receiver blocks for 100ms disk accesses every 100ms.

Disruptor as used by Lmax normally uses very few senders / receivers and
the main/busy  threads do no IO.

Ben


On Wed, Oct 30, 2013 at 1:03 PM, Simon Ruggier <simo...@gmail.com> wrote:

> See my first message, I tested the throughput of the pipes API, it is far
> slower. Synchronization between sender and receiver depends on which wait
> strategy is used. There is a strategy that blocks indefinitely if no new
> items are sent. To see how it works, look at this comment:
>
> https://github.com/sruggier/rust-disruptor/blob/7cbc2fababa087d0bc116a8a739cbb759354388b/disruptor.rs#L762
>
> Multiple senders are also on my roadmap.
>
> Some things just aren't testable, because the memory ordering guarantees
> depend on the hardware you're running on. For it to be truly correct and
> portable, the source code has to be simple enough for a reviewer to able to
> verify correctness at compile time. The comment I link to above is a good
> example, I could never test that code thoroughly enough to be satisfied, a
> proof of correctness is the only way.
>
>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to