我们可以在32位系统中创建多少个对象?

时间:2016-05-04 17:10:03

标签: .net memory-management heap-memory

在.NET中,只要存在,一个对象需要12个字节,8个用于标题,4个用于引用。假设我们想要创建一个32位系统可以处理的最大12字节对象数(忽略100%的开销)。这个最大值可能是多少? 我看过here 我们可以创建1.7亿个对象,但据我所知,32位系统可以管理max 4 Go of ram,我不知道这个1.7亿个对象来自哪里。

1 个答案:

答案 0 :(得分:3)

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转换。