Перейти к содержимому
G_Arthur_

Тег: Concurrency

blog/disruptor-ringbuffer.md

2 мин чтения

Java LMAX Disruptor. Часть 1 - разбираем Preallocated RingBuffer

Обычная очередь аллоцирует новый объект на каждое сообщение и грузит GC. Разбираем, как LMAX Disruptor предаллоцирует RingBuffer целиком и переиспользует объекты-события, убирая аллокации из hot path.

blog/pointer-chasing.md

9 мин чтения

Pointer chasing: почему связный список медленнее массива, хотя оба — O(n)

Замените связный список на массив, не трогая алгоритм — и получите ускорение в разы. Разбираемся почему на бенчмарках JMH: кэш-промахи, цепочка зависимостей чтений и во сколько раз реально медленнее pointer chasing.