0

谷歌云引擎的配置是2个vCPU,13GB内存,ubuntu-1604。

似乎“malloc”可以分配的最大内存大小略小于 13GB(以下示例中的 12GB 有效,分配 12.5GB 会失败..)。这是因为虚拟内存没有打开吗?还有其他可能的原因吗?

  unsigned long input_size = 1024*1024*1024*3;
  unsigned int *h_data = (unsigned int *)malloc(input_size*sizeof(unsigned int));
4

1 回答 1

2

使用该free命令查看您有多少可用内存。它还将显示您有多少可用交换空间。

服务器可能配置为 13GB 内存,但肯定其他东西(如操作系统)正在将内存用于其他东西,并且并非所有 13GB 都可用于您的应用程序。

您是否期望能够使用交换空间分配比实际可用内存更多的内存?

于 2018-07-25T16:03:03.233 回答