在 32 位系统中我们可以创建多少 objects?
How much objects can we create in 32-bits systems?
在 .NET 中,为了仅存在,object 需要 12 个字节,8 个用于 header,4 个用于引用。假设我们要创建 32 位系统可以处理的最大 12 字节 objects(忽略 100% 的开销)。这个最大值可能是多少?
我已阅读 here
我们可以创建 1.7 亿 object,但据我所知,32 位系统最多可以管理 4 Go 的 ram,我不知道 1.7 亿 object 是从哪里来的。
1,024 MB = 1 GB
2 GB = 2,048 MB
2,048 MB * 1,024 = 2,097,152 KB
2,097,152 KB * 1024 = 2,147,483,648 B
2,147,483,648 B / 12 = 178,956,970 170million (ish)
正如文章所指出的,那里有一些开销,这种大小的对象实际上是无用的。但无论如何,以上是 GB -> B / 12 转换的数学运算。
在 .NET 中,为了仅存在,object 需要 12 个字节,8 个用于 header,4 个用于引用。假设我们要创建 32 位系统可以处理的最大 12 字节 objects(忽略 100% 的开销)。这个最大值可能是多少? 我已阅读 here 我们可以创建 1.7 亿 object,但据我所知,32 位系统最多可以管理 4 Go 的 ram,我不知道 1.7 亿 object 是从哪里来的。
1,024 MB = 1 GB
2 GB = 2,048 MB
2,048 MB * 1,024 = 2,097,152 KB
2,097,152 KB * 1024 = 2,147,483,648 B
2,147,483,648 B / 12 = 178,956,970 170million (ish)
正如文章所指出的,那里有一些开销,这种大小的对象实际上是无用的。但无论如何,以上是 GB -> B / 12 转换的数学运算。