Я пишу приложение на базе Windows, которое использует библиотеку OpenCV для обработки изображений. Это многопоточное приложение, и каждый поток загружает изображение и обрабатывает его. Моя проблема в том, что когда изображения огромны, потребление памяти становится очень высоким, и приложение падает.Windows: использование памяти треков и ограничение потоков
Я хочу отслеживать объем памяти, которую использует мое приложение (из приложения), и динамически ограничивать количество создаваемых потоков. Есть ли способ в Windows отслеживать, сколько разрешенной памяти используется приложением (и насколько больше я буду допущен).
Я использую VC++ (VS2010 для Windows 7).
Я рассмотрел некоторые вопросы, такие как this и this, но не смог найти ни одного, который позволяет отслеживать из самого приложения. Это возможно? Любые рекомендации будут полезны.
Одним из способов было бы централизовать выделение памяти, удерживая пул памяти в основном потоке и заставляя рабочие потоки ждать (если необходимо), пока память не станет бесплатной. –
Это звучит как хороший способ сделать это. Я посмотрю. – go4sri