Golang: выравнивание полей структур. Struct padding.

  Рет қаралды 4,181

Андрей Шестаков

Андрей Шестаков

Күн бұрын

Пікірлер: 14
@ДенДенев-в1л
@ДенДенев-в1л 9 ай бұрын
Очень крутая и полезная информация. А главное объяснение максимально понятное и доходчивое!
@resolution07
@resolution07 Жыл бұрын
Интересный момент. Начинал свою карьеру с высокоуровневого языка, поэтому не интересовался такими моментами по оптимизации\работы с памятью. Сейчас, когда начинают назревать задачи где надо встраивать сервисы с высокой производительностью, возникают проблемы) Было бы еще интересно послушать про DTO и репозитории (PHP). Заметил что многие не до недооценивают эти подходы
@ЕгорКузнецов-й5ж
@ЕгорКузнецов-й5ж 11 ай бұрын
Спасибо большое за очень доходчивое объяснение данной особенности языка!
@alexrekunch9589
@alexrekunch9589 Жыл бұрын
Классный и интересный материал! Подскажите, где можно почитать про машинное слово и работу процессоров с памятью для более глубокого понимания этого материала?
@nikolaykozlov4888
@nikolaykozlov4888 9 ай бұрын
Отличное объяснение! Спасибо!
@video_rezka
@video_rezka 2 ай бұрын
передайте через указатель и будет по 8 байт каждая)
@AudraMcdonald-x9m
@AudraMcdonald-x9m 6 ай бұрын
А как вы думаете, стоит ли вручную упорядочивать поля в структурах для оптимизации? я сам недавно выбирал курсы по IT, рассматривал разные варианты, но Skypro помогли найти первый заказ))
@nda861
@nda861 4 ай бұрын
Ну и кринж
@Prof-Shor
@Prof-Shor 7 күн бұрын
Да нахер не надо, с размещением в стеке похуй абсолютно
@HelloWorld-ds5rn
@HelloWorld-ds5rn 8 ай бұрын
Скорее всего, надо располагать по убыванию поля
@bkWorm-gx2pi
@bkWorm-gx2pi 6 ай бұрын
Почему размер переменной следующой структуры 12b? type A struct { value int32 is1 bool is2 bool is3 bool is4 bool is5 bool }
@YanA-bk1nb
@YanA-bk1nb 5 ай бұрын
У тебя наверно выравнивание 4б а не 8
@alexandertsapkov491
@alexandertsapkov491 4 ай бұрын
выравнивание не зависит только от архитектуры процессора. в go выравнивание для всех типов полей структуры будет работать, как выравнивания для самого большого типа данных в структуре. у вас это int32, его выравнивание 4. и для всех последующих полей оно будет 4. поэтому, сначала int32 - 4 байта, потом 4 bool - 4 байта и еще один bool в 4 байта, получаем 12. если замените int32 на int16, то выравнивание станет 2, тогда int16 - 2 байта, 2 bool - 2 байта, еще 2 bool - 2 байта, и еще один bool - 2 байта, получим 8.
@bkWorm-gx2pi
@bkWorm-gx2pi 4 ай бұрын
@@alexandertsapkov491 спасибо за пояснение
PHP & Symfony: service locator, сервис локатор
9:43
Андрей Шестаков
Рет қаралды 1 М.
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 45 МЛН
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Как на самом деле устроены каналы в Golang? | Golang channels internals
41:31
Архитектура Go проекта на практике
30:09
Evrone Development
Рет қаралды 19 М.
Всё про конкурентность в Go
23:36
defer panic
Рет қаралды 23 М.
Управление памятью и сборщиком мусора в Go
47:26
Московский клуб программистов
Рет қаралды 13 М.
Выравнивание структур в С++
11:08
Natatem00\Программирование
Рет қаралды 415
Секреты атомиков в Go | Барьеры памяти - Concurrency в Go
11:32
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН