Я пишу алгоритм для выполнения некоторых вычислений внешней памяти, т. Е. Когда ваши входные данные не вписываются в основную память, и вам приходится учитывать сложность ввода-вывода.Ограничение физической памяти на процесс
Поскольку для моих тестов я не всегда хочу использовать реальные входы Я хочу ограничить объем доступной памяти для моего процесса. То, что я нашел, что я могу установить параметр mem
ядра, чтобы ограничить физически используемую память всех процессов (это правильно?)
Есть ли способ сделать то же самое, но с на предел процесса , Я видел ulimit
, но он ограничивает только память за каждый процесс. Любые идеи (возможно, я могу даже установить ее программно из моего кода на C++)?
Вы полагаетесь на виртуальную память и подкачку linux для загрузки соответствующих данных в память или вы планируете вручную загружать данные вручную в буферы? –
Я использую подкачку виртуальной памяти + linux (плюс библиотека под названием stxxl для некоторых структур данных внешней памяти, но я уже могу контролировать их использование в памяти). – dcn
Добавлен тег linux-kernel, потому что вам, вероятно, нужно напрямую поговорить с ядром для этого , и ребята ядра, скорее всего, узнают об этом. –