Как я могу узнать источник увеличения памяти в моем коде при его запуске? - PullRequest
0 голосов
/ 01 июня 2011

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

Ответы [ 3 ]

2 голосов
/ 01 июня 2011

Если вы уверены, что ваша программа использует слишком много памяти, тогда попробуйте использовать профилировщик памяти .

1 голос
/ 01 июня 2011

Стоит отметить, что профилировщик памяти напрямую не сопоставляется с памятью (ВМ и используемой памятью) или счетчиком Рабочий набор в диспетчере задач.

Рабочий набор программы - это Коллекция этих страниц в его виртуальное адресное пространство, которое было недавно ссылался . Включает в себя как общие и личные данные. Общий данные включают в себя страницы, которые содержат все инструкция вашего заявления выполняется, в том числе в ваших DLL и системные библиотеки DLL. Как работает заданный размер увеличивается, потребность в памяти увеличивается.

Если память служит, профилировщик памяти будет смотреть на частные байты, которые представляют фактическую память, которую вы используете.

Также см. Раздел Комментарий к счетчикам производительности и тому, как не использовать диспетчер задач в этой статье от Тесс Феррандез

1 голос
/ 01 июня 2011

Вы можете использовать приложение CLR Profiler для получения снимков вашего потребления памяти. Тогда вы сможете определить источник вашей проблемы.

CLR Profiler бесплатен и доступен здесь: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=be2d842b-fdce-4600-8d32-a3cf74fda5e1

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