Обычная очередь аллоцирует новый объект на каждое сообщение и грузит GC. Разбираем, как LMAX Disruptor предаллоцирует RingBuffer целиком и переиспользует объекты-события, убирая аллокации из hot path.
Замените связный список на массив, не трогая алгоритм — и получите ускорение в разы. Разбираемся почему на бенчмарках JMH: кэш-промахи, цепочка зависимостей чтений и во сколько раз реально медленнее pointer chasing.
При разработке на kotlin иногда приходится иметь дело с традиционными Callback-интерфейсами. Рассмотрим способ как совместить синхронный callback и Flow