Как получить объем доступной памяти?
потом слушать, какие названия придумают для тебя пользователи
Если действительно надо физическую, то добавить mlock.
делать calloc, пока NULL не вернётOOM Killer прибьёт же.
Топикстартеру: http://blogs.msdn.com/b/oldnewthing/archive/2012/01/18/10257...
потом слушать, какие названия придумают для тебя пользователис чего бы, пока в память писать не начнешь, ни свопления ни тормозов не будет. кусок в (почти) 3ГБ выделяется мгновенно.
Не совсем понятно что ты хочешь получить. Благодаря свапу можно выделить и использовать больше чем есть физической памяти. Ограничится только физической памятью тоже не верно — она не вся доступна юзерспейсу и нужно оставить сколько-то на дисковый кэш. Опять-же без mlock есть все шансы оказаться в свопе даже если используешь мало памяти но делаешь это неактивно. А mlock штука ограниченная — тебе не надут залочить всё.
с чего бы, пока в память писать не начнешь, ни свопления ни тормозов не будет. кусок в (почти) 3ГБ выделяется мгновенно.calloc ведь обнуляет память, не так ли?
Оставить комментарий
mari33
Можно ли и как в С/С++ получить объем доступной физической памяти для выделения процессу (под всякие переменные, массивы)? В общем случае архитектура неизвестная, но стандарта POSIX.