虚拟机的 RAM 要求

虚拟机的 RAM 要求

主机操作系统是 Windows 10,具有 16BG RAM。我有 Oracle VirtualBox,Ubuntu 18.04 作为客户操作系统(2GB RAM)。

我在客户操作系统上运行了以下程序。我可以看到最高列出 40GB。但是,我没有看到 VirtualBox 的 RAM 使用量超过 230MB。

我如何才能看到客户机和主机上准确的内存计数器?

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <malloc.h>

static size_t total = 0, n = 0;
static char* ptrs[20000] = {0};
static size_t ncur  = 0;

static void alloc_more(int more)
{
    char* tmp = (char*)malloc(more);
    tmp[more/2] = 32;
    tmp[more-1] = 41;
    tmp[0] = 53;
    total += more;
    printf("\n allocated total is %lu GB for %p", total/(1024*1024*1024),tmp);
    ptrs[++n] = tmp;
    ncur = (n*3)/4;
    if(ptrs[ncur])
    {   memset((void*)ptrs[ncur], 33, more);
    }
}

int main(int argc, char* argv[])
{
    while(1)
    {
        alloc_more(atoi(argv[1]));
    }
    return 0;
}

答案1

当您分配内存时,它只是被保留。您需要在实际使用之前将某些东西放入其中。如果您在其中放入了某些东西,那么您应该会观察到 VM RAM 使用率增加。您可能希望在程序中设置一些休眠来减慢速度,以便有时间观察程序的进展情况。

有一个关于使用所有可用内存的有趣问题就在前几天。

相关内容