Size: a a a

2021 May 05

[

[BRM]White Rabbit in Haskell
4 байта на 64_86
источник

JS

Jerzy Syrowiecki in Haskell
как вы это измерили?
источник

[

[BRM]White Rabbit in Haskell
sizeOf из Foreign.Storable
источник

¯

¯\_(ツ)_/¯ in Haskell
источник

JS

Jerzy Syrowiecki in Haskell
sizeOf показывает не сколько байт надо для представления живого объекта Bool, а сколько надо для сериализации
источник

MK

Maxim Koltsov in Haskell
Указатель на бул скорее всего будет тегирован его конструктором, а тк пейлоада у него нет, то можно считать что размер була = размер указателя
источник

¯

¯\_(ツ)_/¯ in Haskell
источник

С

Сергей in Haskell
это возможно сглаживание структур просто
источник

IO

I O in Haskell
Ну так да, если рассматривать бул как битовое число в нем конечно ровно один бит
источник

JS

Jerzy Syrowiecki in Haskell
это тоже не размер в памяти, а количество разрядов, доступных для битовой арифметики
источник

JS

Jerzy Syrowiecki in Haskell
выравнивание?
источник

С

Сергей in Haskell
да
источник

¯

¯\_(ツ)_/¯ in Haskell
тогда это?
источник

JS

Jerzy Syrowiecki in Haskell
да, по-моему, это ближе всего к "сколько весит Bool"
источник

K

Kir in Haskell
Как правило, 8 байт
источник

JS

Jerzy Syrowiecki in Haskell
данные, передающиеся по ссылке, весят (столько, сколько весит сслыка = машинное слово) + то, что в таблице
источник

IO

I O in Haskell
Тут как всегда вопрос в том что понимать под "весит". Обычно например говорят что data Foo = Foo {-# UNPACK #-} !Int {-# UNPACK #-} !Int занимает 3 слова (инфотейбл + 2 анбоксед инта), но это 3 слова в куче + указатель в нее, так что можно сказать и что четыре. То же самое с булом - в куче занимает 0, тк все булы ссылаются на преаллоцированные True и False, но сам указатель весит слово.
источник

[

[BRM]White Rabbit in Haskell
ссылка это таки qword
источник

MK

Maxim Koltsov in Haskell
Я ведь так и сказал
источник

K

Kir in Haskell
Инфотейбл? Я думал, там номер конструктора
источник