Сколько байт число в памяти?

Junior
513 просмотров
AFK Offer AI

Зависит от типа:

int8 / uint8   — 1 байт
int16 / uint16 — 2 байта
int32 / uint32 — 4 байта
int64 / uint64 — 8 байт
float32        — 4 байта
float64        — 8 байт

int / uint — зависит от платформы: 8 байт на 64-bit, 4 байта на 32-bit

Проверить можно через unsafe.Sizeof():

var x int
fmt.Println(unsafe.Sizeof(x)) // 8 на 64-bit системе

Важно для оптимизации: в слайсе из миллиона элементов разница между int32 и int64 — 4 MB. При работе с бинарными протоколами всегда используй фиксированные типы (int32, int64).

Следующий вопрос

Что такое postmortem?