Как приложение MFC связывается с виртуальной памятью?

Я работаю над приложением MFC, которое, кажется, автоматически выделяет ~160 МБ виртуальной памяти. Приложение обычно работает на 10-14 МБ памяти, поэтому этот уровень выделенной памяти кажется чрезмерным. Кроме того, в коде, где вызывается VirtualAlloc, нет места... COM & ATL также используются.

Память показывает как зафиксированный экземпляр, который запускает процесс, до достижения точки останова в __tmainCRTStartup.

Как можно зарезервировать / зафиксировать эту память?

Заранее спасибо!

2 ответа

Решение

Оказалось, что был некоторый "унаследованный" код, использующий статический массив пользовательских объектов, который выделил около 1000 дополнительных элементов, поэтому изменение его для использования std::vector полностью решило эту проблему...

Единственной причиной может быть используемая вами DLL. Я использовал MFC 7.0 и 9.0 для многих проектов и могу сказать, что они не выделяют столько памяти.

Другие вопросы по тегам