gpt4 book ai didi

c# - Nullable 的内存占用是多少

转载 作者:IT王子 更新时间:2023-10-28 23:29:31 24 4
gpt4 key购买 nike

int (Int32) 的内存占用为 4 个字节。但是什么是内存占用:

int? i = null;

和:

int? i = 3;

这是一般情况还是取决于类型?

最佳答案

我不是 100% 确定,但我相信它应该是 8 个字节,int32 应该是 4 个字节,并且(因为在 32 位机器上每件事都必须是 4 字节对齐)另外 4 个字节作为 bool 值表示是否指定了整数值。

注意,感谢@sensorSmith,我现在知道 .Net 的较新版本允许可空值存储在较小的占用空间中(当硬件内存设计允许独立分配较小的内存块时)。在 64 位机器上,它仍然是 8 字节(64 位),因为这是可以寻址的最小内存块......

例如,可为空的 bool 值只需要一个位,IsNull 标志需要另一个位,因此总存储要求小于一个字节,理论上它可以存储在一个字节中,但是,像往常一样,如果可以分配的最小内存块是 8 字节(如在 64 位机器上),那么它仍将占用 8 字节内存。

关于c# - Nullable<T> 的内存占用是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1381308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com