Ответ 1
Этот блог поможет вам, если вы хотите узнать о windbg (http://www.microsoft.com/whdc/devtools/debugging/default.mspx).
У меня есть служба WCF, работающая поверх MSMQ. Память постепенно увеличивается с течением времени, указывая на то, что происходит утечка памяти. Я запускал службу локально и контролировал некоторые счетчики, используя PerfMon. Суммарное количество хранимых байтов в памяти CLR остается относительно постоянным, а личные байты процесса увеличиваются с течением времени. Это заставляет меня поверить, что существует некоторая неуправляемая утечка памяти. Предполагая, что проблема с неуправляемой утечкой памяти является проблемой, как мне решить проблему? Есть ли какие-либо инструменты, которые я мог бы использовать, чтобы дать мне подсказки относительно того, что вызывает неуправляемую утечку памяти? Кроме того, все, что я делаю, это чтение из транзакционной очереди и запись в базу данных, все как часть транзакции DTC (обрабатывается под капотом, требуя транзакции по контракту на обслуживание). Я ничего явно не делаю с COM или DllImports.
Спасибо заранее!
Этот блог поможет вам, если вы хотите узнать о windbg (http://www.microsoft.com/whdc/devtools/debugging/default.mspx).
Вы можете использовать Windbg для анализа кучи процесса. Есть некоторые статьи и чит-листы, показывающие, как это сделать, например Обнаружение утечки памяти с помощью Windbg
Убедитесь, что вы закроете клиента службы после его использования. что-то вроде
try {
... do work ...
Close();
} ... exception handling ... {
Abort();
}
Ants Profiler стоит рассмотреть. Насколько я помню, вы можете загрузить пробную версию.