Ограничение выделения памяти (программирование на C) в облачном движке Google
Конфигурация облачного движка Google - 2 виртуальных ЦП, 13 ГБ памяти, Ubuntu-1604.
Кажется, что максимальный объем памяти, который может выделить "malloc", составляет чуть менее 13 ГБ (в следующем примере работает 12 ГБ, неправильное использование 12,5 ГБ приведет к ошибке..). Это потому что виртуальная память как-то не включена? Любые другие возможные причины?
unsigned long input_size = 1024*1024*1024*3;
unsigned int *h_data = (unsigned int *)malloc(input_size*sizeof(unsigned int));
1 ответ
Использовать free
Команда, чтобы увидеть, сколько свободной памяти у вас есть. Он также покажет, сколько места подкачки у вас есть.
Сервер может быть настроен на 13 ГБ памяти, но, безусловно, другие вещи (например, ОС) используют память для других целей, и не все 13 ГБ доступны для вашего приложения.
Ожидаете ли вы, что сможете использовать больше памяти, чем физически доступно, используя пространство подкачки?