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

Тег: Java

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.

blog/transactional.md

3 мин чтения

@Transactional

Разбор аннотации @Transactional в Spring: транзакции, уровни изолированности ACID, феномены грязного чтения и фантомов, механизм Proxy.

blog/gradle-and-maven.md

1 мин чтения

Gradle & Maven

Анализ перехода с Maven на Gradle: преимущества, подводные камни с кастомными плагинами и итоги.