Сообщается ли о стоке потока как о памяти, используемой в диспетчере задач? - PullRequest
2 голосов
/ 05 августа 2009

Мои коллеги и я пытаемся отследить проблему с памятью в приложении, и в своем исследовании я нашел запись в блоге , в которой говорится о том, как каждый поток получает стек по 1 МБ по умолчанию. Наше приложение создает множество потоков, поэтому мы написали программу быстрого тестирования, чтобы убедиться, что мы точно понимаем, что происходит. Тестовое приложение (C #) просто создает и создает 300 потоков, но диспетчер задач по-прежнему показывает только 22 МБ памяти. Диспетчер задач не учитывает память стека или что-то еще происходит?

1 Ответ

1 голос
/ 05 августа 2009

Диспетчер задач - не лучший инструмент для определения потребления памяти. Вместо этого загрузите бесплатную пробную версию такого инструмента, как MemProfiler или RedGate's Memory Profiler

Не используйте столбец mem в диспетчере задач для диагностики или профилирования. Используйте счетчики Perfmon, особенно Private Bytes и специальные .NET-счетчики, которые выявят такие проблемы, как утечки памяти.

Может также представлять интерес: Аудит использования памяти для приложений .NET

...