Обнаружение нехватки памяти ДО начала сбоя выделения памяти в Windows

У нас есть приложение, которое потенциально может выделять большое количество небольших объектов (в зависимости от пользовательского ввода ). Иногда приложению не хватает памяти, и оно вылетает.

Однако, если бы мы знали, что выделение памяти становится узким, существовали бы объекты с более низким -приоритетом, которые можно было бы уничтожить, что позволило бы нам изящно ухудшить пользовательские результаты.

Каков наилучший способ определить, что памяти для процесса не хватает до того, как вызовы «нового» действительно потерпят неудачу? Мы могли бы вызывать такие функции API, как GetProcessWorkingSetSize()или GetProcessMemoryInfo(), но как узнать, когда достигнуты ограничения на данной машине (, например. с 80% максимального распределения )?

5
задан snowdude 12 August 2012 в 12:18
поделиться