Понимание размера памяти приложения .NET - PullRequest
6 голосов
/ 04 июля 2011

Приложение, над которым я работаю, сразу после запуска занимает 338 МБ приватных байтов и 780 МБ виртуальных. Я пытаюсь понять, что занимает всю эту память. Надеюсь, после понимания, что я смогу уменьшить его размер. Это 32-битное приложение на C #, номера, указанные выше, были взяты во время его работы в 64-битной Windows7.

Открытие дампа с помощью windbg показывает, что размер кучи составляет 47 МБ. Общий размер файлов внешних библиотек, загружаемых приложением, составляет 60 МБ.

Пустое приложение c # занимает всего 10 МБ, так что может заставить мое приложение достигать 338 МБ частных байтов? И почему Windows7 выделяет 780 МБ виртуальной памяти?

Любые указания помогут.

1 Ответ

5 голосов
/ 10 июля 2011

Вы можете использовать VMMap , утилиту анализа виртуальной и физической памяти процесса из Windows Sysinternals на сайте technet.

VMMap показываетразбивка выделенных типов виртуальной памяти процесса, а также объема физической памяти (рабочего набора), назначенного операционной системой этим типам.Помимо графического представления использования памяти, VMMap также показывает сводную информацию и подробную карту памяти процесса.Мощные возможности фильтрации и обновления позволяют определять источники использования памяти процесса и стоимость памяти для функций приложения.

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

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

...