Приложение Windows потребляет слишком много памяти.Любые советы? - PullRequest
1 голос
/ 31 января 2011

Приложение Visual Studio 2008 с использованием C ++ под Windows XP.

Какие-нибудь полезные советы помимо совета "всегда удалять новые объекты"?

Редактировать: На самом деле я ищу некоторые советы по программированию.

Ответы [ 2 ]

0 голосов
/ 31 января 2011

Зависит от того, что вы подразумеваете под «потребляет слишком много памяти».

A) По своей структуре, т. Е. Требует загрузки или генерирования больших структур данных, которые, как вы ожидаете, могут вызвать проблемы.

В этомэто случай, когда я) слишком много физической памяти, т. е. он становится медленным, потому что жесткий диск начинает обмениваться страницами туда-сюда, или ii) слишком много адресного пространства, т. е. он не выделяется, потому что не может найти дыру в памяти?

Для ii) рассмотрите возможность использования 64-битных сборок, рассмотрите возможность использования общей памяти для хранения больших структур данных, остерегайтесь фрагментации - рано выделяйте большие буферы, разбивайте большие структуры данных на более мелкие

B) Это удивляет васиспользуя большое количество памяти.

Найдите свои утечки или ошибки - доступны различные профилировщики или встроенная отладочная отладка в Visual Studio.Есть ли у вас какие-либо неработающие арифметики для расчета размеров буфера (особенно случайные int-циклы)?

Используйте умные указатели для управления удалением.

0 голосов
/ 31 января 2011

Предполагая, что у вас есть утечка памяти, есть бесплатное решение для решения этой проблемы перед покупкой / запуском других профилей, и это UMDH. Он может обнаружить большинство утечек памяти, если это ваша ситуация.

http://support.microsoft.com/kb/268343

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...