Как получить объем доступной памяти?

mari33

Можно ли и как в С/С++ получить объем доступной физической памяти для выделения процессу (под всякие переменные, массивы)? В общем случае архитектура неизвестная, но стандарта POSIX.

Marinavo_0507

делать calloc, пока NULL не вернёт :D
потом слушать, какие названия придумают для тебя пользователи

Marinavo_0507

Если действительно надо физическую, то добавить mlock.

oliver11

делать calloc, пока NULL не вернёт :D
OOM Killer прибьёт же.
Топикстартеру: http://blogs.msdn.com/b/oldnewthing/archive/2012/01/18/10257...

elenangel

потом слушать, какие названия придумают для тебя пользователи
с чего бы, пока в память писать не начнешь, ни свопления ни тормозов не будет. кусок в (почти) 3ГБ выделяется мгновенно.

vall

Не совсем понятно что ты хочешь получить. Благодаря свапу можно выделить и использовать больше чем есть физической памяти. Ограничится только физической памятью тоже не верно — она не вся доступна юзерспейсу и нужно оставить сколько-то на дисковый кэш. Опять-же без mlock есть все шансы оказаться в свопе даже если используешь мало памяти но делаешь это неактивно. А mlock штука ограниченная — тебе не надут залочить всё.

Andbar

с чего бы, пока в память писать не начнешь, ни свопления ни тормозов не будет. кусок в (почти) 3ГБ выделяется мгновенно.
calloc ведь обнуляет память, не так ли?
Оставить комментарий
Имя или ник:
Комментарий: