Лучший способ отследить утечку памяти (C #), видимую только в ящике одного клиента

StackOverflow https://stackoverflow.com/questions/150805

Вопрос

Каков наилучший способ отследить утечку памяти, которая обнаружена только в окне тестирования / выпуска одного клиента, и нигде больше?

Это было полезно?

Решение

Точечная трассировка3.1

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

Другие советы

Попробуйте профилировщик памяти, например Профилировщик Муравьев.

Если у пользователя постоянно возникает проблема, возьмите stackdump и проанализируйте стандартным способом

Это либо код, либо данные, либо конфигурация.

Поскольку вы говорите, что код не является ошибочным в 100% случаев, я бы обвинил конфигурацию.Возьмите копию конфигурации (и, при необходимости, некоторых данных) и попытайтесь воспроизвести проблему;вы не узнаете, что нашли и исправили это, без воспроизведения.

Наконец, решите эту проблему с помощью профилировщика памяти.

Вот один из вариантов:Дайте им коробку, в которой нет утечки.

Иногда дело не в коде.

Редактировать:Это либо код, либо данные, либо конфигурация.

Или .NET Framework, операционная система, драйверы, IIS или COM (например, автоматизация Excel) или так далее.

Мое предположение заключается в том, что утечка памяти невоспроизводима, кроме как в окне клиента (к которому разработчику не может быть разрешен доступ для отладки).

PerfMon может быть полезен (http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/).Существует несколько счетчиков, которые могут помочь сузить круг утечек ресурсов, с какой скоростью и т.д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top