2012-02-02 7 views
0

Я работаю над программным приложением с кодом C# 4.0. Я использую внешние DLL, которые не совместимы с CLS.Может ли быть утечка памяти в .NET? Если да, то какой из них лучший инструмент?

Нужен ли мне инструмент обнаружения утечки памяти для проверки утечек памяти в DLL? Если да, то какие лучшие инструменты там?

+3

Вы подозреваете утечку памяти? –

+2

Связанный вопрос: http://stackoverflow.com/questions/2526037/why-can-net-not-have-memory-leaks/2526058#2526058 – Oded

+0

нет «лучшего инструмента» для этого ... он всегда зависит от что делают DLL - например, у меня есть некоторые DLL-файлы, которые используют неуправляемую память, другие DLL-файлы являются родными и т. д. Никакой инструмент не обрабатывает все эти одинаково хорошо ... – Yahia

ответ

1

Вы можете использовать такой инструмент, как CLR Profiler, VSTS Profiler, .NET Memory Profiler или CLR Profiler для проверки размера объекта и т. Д., Так как они говорят, что вы можете найти утечки памяти и оптимизировать использование памяти в любой .NET-программе.

2

Даже в управляемом коде у вас могут быть утечки памяти. Я бы не стал впадать в утечку памяти, если вы на самом деле его не нашли.

Если вам нужно изучить утечку, тогда я бы предложил ANTS Profiler, однако это имеет свои пределы, поэтому его следует использовать в каждом конкретном случае.

+0

Я собирался посмотреть, могу ли я найти хорошую ссылку на .Net-код с утечками памяти, однако ссылка, которую имеет Oded, очень хорошо подходит. –

1

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

У меня когда-то была утечка памяти, потому что я не располагал System.DirectoryServices.SearchResultCollection после перечисления по ней.

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

1

Вы можете использовать бесплатные WinDbg, SOS и GCRoot, чтобы диагностировать утечки памяти. Дэвид Ансон показывает вам, как на this blog post. У Rico Mariani также есть good blog post при использовании WinDbg и SOS.

Другие продукты, такие как JustTrace, dotTrace и ANTS Profiler могут помочь вам диагностировать такие проблемы.

Смежные вопросы