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

Программист

Send message

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

Level of difficultyEasy
Reading time8 min
Views3.5K

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

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

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

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

Читать далее

Information

Rating
266-th
Works in
Registered
Activity

Specialization

Web Developer
Git
OOP
PostgreSQL
Golang
Python
Bash
Kubernetes
Docker