| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > как лимитировать память для приложения |
| Автор: drdeath 12.7.2009, 04:44 |
| лимитировать или хотя-бы определить сколько памяти использует приложение интересует как линукс так и windows |
| Автор: GremlinProg 12.7.2009, 12:50 | ||
какой именно памяти? физическую можно "ограничить" с помощью SetProcessWorkingSetSize в кавычках потому, что этот лимит спокойно можно обойти, используя AWE API а вот виртуальную, в принципе не ограничить, каждый процесс может потреблять все адресное пространство (32- или 64-битное), можно только определить, сколько виртуальной памяти можно выделить, не расширяя файла подкачки - GetPerformanceInfo:
т.е. любой вызов VirtualXXX сразу влияет на эту характеристику в процессе хотя ни кто не мешает просто заранее отрезать кусок памяти, нужного объема, который не должен использоваться, но это глупо )), лимит будет формальным посмотреть текущий уровень загрузки памяти всех видов можно с помощью GlobalMemoryStatus/Ex ps: все это касаемо windows |
| Автор: Vaulter 12.7.2009, 13:39 | ||
как определить:
как ограничить - глубоко уверен, что это задача не самой программы, а администратора системы есть квоты на память пользовательских процессов. |
| Автор: dumb 12.7.2009, 15:15 |
| http://forum.vingrad.ru/forum/topic-200391.html |
| Автор: GremlinProg 12.7.2009, 15:36 |
| да, dumb, с жобами гораздо интереснее, только, как я понимаю, это только мониторинг, а не лимитирование, не так ли? |
| Автор: dumb 12.7.2009, 17:32 |
| не, там именно квотирование - если лимит исчерпан, то следующие попытки выделения памяти завершатся ошибкой. с учетом того, как нонче пишут программы, это практически 100% обрушение процесса. |