首先,如果这个问题不属于这里,我很抱歉。我想确认这个问题是否与我的 Ubuntu 有关。
下面的 C++ 代码使2621440整数变量。每个整数需要4内存中的字节。 所以,2621440整数将采用(2621440 * 4 =)10MB来自虚拟内存。
我遇到的问题是,这个程序占用了近80MB内存,毫无原因。
我监控了内存使用情况系统监视器和顶部命令也是如此。
int main()
{
int *p;
for (int n=0; n < 2621440 ; n++)
{ p = new int ; }
}
我上线了库本图 13.04 (amd64)
请给我一点解释。
谢谢!
答案1
每个整数需要32 位从记忆中。
4 字节 = 4 * 8 位 = 4 字节,因此 2621440 个整数将需要 (2621440 * 4 * 8) 位 = (2621440 * 4) 字节 = 80 兆位 (Mb) = 10 兆字节 (MB)。
我认为您混淆了兆比特 (Mb) 和兆字节 (MB):8 兆比特 (Mb) = 1 兆字节 (MB)。