Size: a a a

2020 August 18

AK

Andrei K in pro.cxx
Anatoly Tomilov
Для спинлока 1 хватит ведь? Ясно, что там не спинлок
1 байт? Однобайтовых объектов в языке вообще мало. Выравание же и всё такое.
источник

АК

Александр Караев... in pro.cxx
Andrei K
1 байт? Однобайтовых объектов в языке вообще мало. Выравание же и всё такое.
bool
источник

AK

Andrei K in pro.cxx
Там не спинлок, там ядерный примитив futex.
источник

AT

Anatoly Tomilov in pro.cxx
sizeof(bool) — по стандарту не обязательно 1. Только sizeof(char) == 1 — истина всегда
источник

AK

Andrei K in pro.cxx
Ну выравнивание же и инструкции проца.
источник

АК

Александр Караев... in pro.cxx
Andrei K
Ну выравнивание же и инструкции проца.
не нужно путать тёплое с мягким
источник

AK

Andrei K in pro.cxx
К тому же спинлок на 256 захватов мало.
источник

АК

Александр Караев... in pro.cxx
Andrei K
К тому же спинлок на 256 захватов мало.
спинлок вообще на один захват обычно
источник

AK

Andrei K in pro.cxx
Александр Караев
не нужно путать тёплое с мягким
Я не путаю.
источник

AK

Andrei K in pro.cxx
Скорее у тебя нет понимания как спинлоки работают и как это с процом связано.
источник

АК

Александр Караев... in pro.cxx
Andrei K
Я не путаю.
объекты могут занимать и часто занимают всего 1 байт, выравнивание вступает в силу только при размещении их в структуры в определенном порядке. но от этого sizeof конкретного однобайтового объекта не становится ВНЕЗАПНО равным 4/8 байт
источник

AT

Anatoly Tomilov in pro.cxx
Andrei K
Скорее у тебя нет понимания как спинлоки работают и как это с процом связано.
откуда вообще цифра 256?
источник

AK

Andrei K in pro.cxx
Александр Караев
объекты могут занимать и часто занимают всего 1 байт, выравнивание вступает в силу только при размещении их в структуры в определенном порядке. но от этого sizeof конкретного однобайтового объекта не становится ВНЕЗАПНО равным 4/8 байт
Да, но речь не про произвольные объекты, а про примитив синхронизации.
источник

AK

Andrei K in pro.cxx
Для которых правила немножко другие.
источник

AK

Andrei K in pro.cxx
Anatoly Tomilov
откуда вообще цифра 256?
На архитектурах где байт 8 бит, там 256 значений.
источник

АК

Александр Караев... in pro.cxx
Andrei K
Да, но речь не про произвольные объекты, а про примитив синхронизации.
цитирую:
> 1 байт? Однобайтовых объектов в языке вообще мало. Выравание же и всё такое.
язык не ограничивается одними примитивами синхронизации
источник

AK

Andrei K in pro.cxx
Александр Караев
спинлок вообще на один захват обычно
Вообще нет.
источник

AK

Andrei K in pro.cxx
Александр Караев
цитирую:
> 1 байт? Однобайтовых объектов в языке вообще мало. Выравание же и всё такое.
язык не ограничивается одними примитивами синхронизации
Мы видимо говорим о разных вещах. Я говорил не про то, сколько байт реально использует объект. Так-то он может и не все биты использовать. Я говорил про то, сколько объект будет реально занимать в памяти с учётом выравнивания и требований на тип.
источник

АК

Александр Караев... in pro.cxx
Andrei K
Мы видимо говорим о разных вещах. Я говорил не про то, сколько байт реально использует объект. Так-то он может и не все биты использовать. Я говорил про то, сколько объект будет реально занимать в памяти с учётом выравнивания и требований на тип.
выравнивание зависит от контекста, в котором используется объект, а требования на тип - это уже что-то не по стандарту
источник

AK

Andrei K in pro.cxx
Для производительности очень желательно иметь объекты выровнененные с большим аыравниванием и зачастую компиляторы этого требует. Насчёт инструкций процессора я имел в виду, что нельзя построить атомик из четверти ширины регистра.
источник