Ответ 1
(Этот вопрос любопытный, потому что я отслеживаю утечку mem, которого нет на моей машине...)
Каков наилучший способ отслеживания утечки памяти, который можно найти только в одном тестовом окне/выпуске клиента, а где нет?
(Этот вопрос любопытный, потому что я отслеживаю утечку mem, которого нет на моей машине...)
Попробуйте профайлер памяти, например ANTI Profiler.
Если у пользователя есть проблема, он последовательно, возьмите stackdump и проанализируйте стандартным способом.
Здесь есть опция: Дайте им поле, где утечки нет.
Иногда это не код.
Изменить: Это либо код, либо данные, либо конфигурация.
Или .NET Framework, ОС, драйверы, IIS или COM (например, автоматизация Excel) или так далее.
Мое предположение заключается в том, что утечка памяти не воспроизводится, кроме как на клиентском ящике (которому разработчику не разрешается доступ для отладки).
Это либо код, данные, либо конфигурация.
Поскольку вы говорите, что код не неисправен в 100% случаев, я бы назвал конфигурацию. Возьмите копию конфигурации (и, возможно, некоторые данные) и попытайтесь воспроизвести проблему; вы не узнаете, что нашли и исправили его без воспроизведения.
Наконец, решите его с помощью профайлера памяти.
PerfMon может быть полезным (http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/). Есть несколько счетчиков, которые могут помочь сузить, какой ресурс протекает, и с какой скоростью и т.д.