Можно ли использовать CLR Profiler для обнаружения утечек памяти - PullRequest
1 голос
/ 03 марта 2011

В моем приложении .NET произошла утечка памяти. Мало кто, кажется, рекомендует использовать CLR Profiler для этой цели. Я немного растерялся от этой идеи. Для меня, чтобы найти утечку памяти, инструмент должен сравнить два состояния памяти, которые могут дать вам статистику, такую ​​как рост объектов между двумя состояниями. Поэтому, на мой взгляд, если инструмент не может сравнивать два (или более) состояния памяти, его нельзя использовать для обнаружения утечки памяти. Очевидно, что такие вещи, как счетчики производительности, представляют собой несколько иную концепцию, в которой вы можете отслеживать использование памяти.

Таким образом, мой вопрос действительно, если кто-то может объяснить, как именно CLR Profiler может использоваться для обнаружения утечек памяти?

1 Ответ

0 голосов
/ 01 июня 2011

Ну, это зависит от того, какая у вас утечка памяти.

У нас был воспроизводимый случай, когда мы начинаем с того, что определенная цепочка событий всегда должна оставлять чистую таблицу после выполнения работы, но это не так.

Итак, мы просто настроили тест, в котором мы делали это пару тысяч раз, а затем мы посмотрели на эти объекты (больше по количеству) на графике кучи и на «корень», чтобы выяснить причину, по которой объекты все еще находятся в живых. Это помогло решить нашу проблему ...

...