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