Pull to refresh
13
11
Никита@DeBugHunter

Программист

Send message

Идеальных систем не существует. Монолит, микросервисы и цена распределённости. CAP, ACID, BASE

Level of difficultyMedium
Reading time13 min
Reach and readers3.7K

Эта статья не про «правильную» архитектуру. Здесь я постарался ответить на вопросы «почему микросервисы дороже, какие компромиссы неизбежны и по каким критериям выбирать архитектуру?»

Поговорим про высоконагруженные распределённые системы и почему монолиты — это не плохо. Также поговорим о необходимости рационального использования ресурсов и выборе типа архитектуры.

Погрузиться

Оптимизация выравнивания и заполнения структур в Go. В 2025 г. всё ещё экономим на спичках

Level of difficultyEasy
Reading time8 min
Reach and readers6.7K

Здравствуйте!

В большинстве своём мы не думаем о том, как Go размещает поля структуры в памяти. И правильно делаем, пока наши структуры не используются в миллионах экземпляров, не передаются в каналах или не сериализуются каждую миллисекунду.

Также неправильное выравнивание может негативно сказаться на кеш-памяти процессора и скорости доступа к данным. На 32-битных платформах некорректное выравнивание 64-битных атомарных переменных (например, int64 для sync/atomic) вообще способно привести к панике.

В этой статье разберём выравнивание структур в Go, посмотрим на примерах влияние порядка полей и подумаем над тем, когда такие оптимизации действительно нужны.

Читать далее

Information

Rating
534-th
Works in
Registered
Activity

Specialization

Веб-разработчик
Git
ООП
PostgreSQL
Golang
Python
Bash
Kubernetes
Docker