+1 не знал VMMap

лкнулся с несколькими исключениями OutOfMemoryException с моим C / WPF-приложением, и я сталкиваюсь с некоторыми запутанными данными, пытаясь профилировать использование памяти.

Когда приложение обычно работает, диспетчер задач Windows отображает использование памяти примерно в пределах 34 МБ (слегка отскакивает при создании объектов и сборке мусора). Когда я запускаю приложения для профилирования памяти, такие какCLR Profiler а такжеПамять dotTraceони показывают общее использование памяти на уровне около 1,2 МБ.

Почему это огромное расхождение? Что диспетчер задач видит, что эти профилировщики не видят?

ОБНОВИТЬ: Я добавил некоторый код diag в свое приложение, чтобы распечатывать различную информацию о памяти через класс Process.

Во время работы моего приложения я установил правило вDebugDiag выполнить дамп памяти в случае исключения. Я вызвал исключение, и произошел дамп памяти. На этом этапе использование памяти моим приложением (как показывает диспетчер задач) подскочило с 32 МБ до 145 МБ и осталось там.

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

Ссылка на таблицу данных здесь.

Ответы на вопрос(2)

Ваш ответ на вопрос