2010-07-22 2 views
0

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

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

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

Заранее благодарен!

ответ

0

Оказалось, там был какой-то «наследство» код, используя статический массив пользовательских объектов, выделенных около 1000 дополнительных элементов, поэтому изменение этого использовать зЬй :: вектор облегчены этот вопрос полностью ...

0

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

+0

Найдено вопрос в некотором устаревшем коде, который имел глобальный массив стека довольно большого размера, который был зафиксирован и никогда не использовался, если не произошла ошибка страницы. – echobravo

Смежные вопросы