Сообщается ли о стоке потока как о памяти, используемой в диспетчере задач?

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

1 ответ

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

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

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

Другие вопросы по тегам