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

Блог

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/bash-commands.md

1 мин чтения

Frequently used bash commands

Шпаргалка по часто используемым командам: find с фильтрами, смена версии Java в Git Bash, подключение к PostgreSQL через psql.

blog/transactional.md

3 мин чтения

@Transactional

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

blog/ssl-certificate.md

1 мин чтения

SSL сертификат с Certbot

Три команды для получения бесплатного SSL-сертификата через Certbot и nginx.

blog/domain-name.md

1 мин чтения

Доменное имя для сайта

Как привязать доменное имя к сайту: выбор регистратора, настройка DNS-записей и проксирование портов через nginx.

blog/gradle-and-maven.md

1 мин чтения

Gradle & Maven

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