Дошли руки посмотреть на бенчмарки самого Disruptor-а -- у него их есть немного. Сколько я помню, они сравнивали Disruptor vs ArrayBlockingQueue. Но в последних версиях в бенчмарках используются уже LinkedBlockingQueue -- якобы, они быстрее.
Интрига в том, что в их бенчмарках это действительно так -- LBQ стабильно лучше ABQ. Но в моих бенчмарках ситуация ровно обратная -- ABQ стабильно лучше. И я не могу найти причин, почему это так.
UPD: Оказывается, что LBQ быстрее на моем ноуте (Core i7 2GHz), а вот ABQ быстрее на сервере (Xeon E5620 2.4GHz). Подозрение мое падает даже не на то, что это разные модели, а больше на то, что сервер, кажется, ccNUMA, а ноут SMP. Хотя внятно объяснить, как это связано я пока не могу
какие ваши доказательства ? (c)
ОтветитьУдалитьссылки на bechmark'и будьте добры
Ну ссылку-то я могу дать --
ОтветитьУдалитьВот только там все, в процессе подготовки к докладу, разрослось и заколосилось аж до целого харнесса :), так что объяснять как все нынче работает, и что в каких конфигах надо подправить -- долгонько придется.
Там любопытная штука. На ноуте LBQ быстрее, на сервере ABQ. По-видимому, разница в том, что ноут-то SMP, а сервер ccNUMA. Пока нет времени расследовать тщательнее