2

我想使用 Lmax Disruptor 进行性能测试:

  • 配置 dusruptor
  • 不知何故“暂停”处理
  • 向 RingBuffer 添加许多消息
  • “取消暂停”处理

这样我就可以清楚地测量缓冲区变空的速度。如果我“混合”添加许多消息(这会引入一些延迟)并进行处理,我可能对处理速度的结果不太确定。

但是,我似乎没有在 LMAX Disruptor (https://lmax-exchange.github.io/disruptor/docs/com/lmax/disruptor/dsl/Disruptor.html)中找到“暂停”,有没有办法做一个?

4

1 回答 1

1

答案很大程度上取决于你所说的暂停破坏者的意思。

nth您可以轻松地拥有一个消费者,它在到达消息之前不会释放环形缓冲区中的插槽。然而,耗尽环形缓冲区所需的时间完全取决于消费者的速度。

但是,如果您要对破坏者本身的成本进行基准测试,那将是一个复杂得多的命题。我将从调查破坏者项目自己的性能测试开始。

在突发性工作负载中,破坏者的批处理效果实际上可以通过分摊昂贵操作(例如网络或磁盘 IO)的成本来提高吞吐量。

于 2017-01-27T10:21:44.417 回答