【问题标题】:Pause the processing inside lmax disruptor?暂停 lmax 干扰器内部的处理?
【发布时间】:2017-01-26 07:11:19
【问题描述】:

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

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

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

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

【问题讨论】:

标签: disruptor-pattern lmax


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多