Как я могу уменьшить память

Как я могу уменьшить память, выделенную для данной программы от терминала?

то, что я имею в виду, - то, если у меня есть a a.out исполняемый файл, как я могу заставить его работать в меньшей памяти от терминала (с использованием каких-либо специальных приложений)

$./a.out fooo

так, чтобы моя программа a.out работала очень на меньшем количестве пространства.

1
задан 26 August 2014 в 22:52

2 ответа

Насколько я знаю, Вы не можете строгим способом (если использование некоторой виртуальной машины или использование cgroups, который не так легок; Вы видите этот ответ от @muru.).

можно ограничить память, доступную с ulimit, но это будет просто иметь эффект сообщения программы, что больше нет памяти при выполнении выделения или катастрофическом отказе его с сигналом, если оно не обрабатывает условие из памяти. Посмотрите:

zcat /var/log/syslog.2.gz 

это работает, партия вывода

 ulimit -d 100 
 ulimit -m 100

(Это ограничивает память для данных и для ядра к 100 КБ)

 [romano:~] 2 % zcat /var/log/syslog.2.gz
 /bin/zcat: xmalloc: .././subst.c:3542: cannot allocate 267 bytes (53248 bytes allocated)

, Но оболочка все еще в состоянии видеть всю память:

[romano:~] 2 % free                      
             total       used       free     shared    buffers     cached
Mem:      15340736    5148596   10192140     368776     284192    2794848
-/+ buffers/cache:    2069556   13271180
Swap:     31999996          0   31999996

Редактирование: больше информации в это сообщение unix.se .

1
ответ дан 11 November 2019 в 12:37

Можно сделать это с эти ulimit команда, вот, это страница справочника .

0
ответ дан 11 November 2019 в 12:37

Другие вопросы по тегам:

Похожие вопросы: