Как мы можем обнаружить утечки памяти в приложении COM Interop? - PullRequest
4 голосов
/ 26 марта 2011

Что было бы наилучшим способом обнаружения проблем управления памятью с помощью приложения winform C #, которое использует COM-взаимодействие. Ссылка на сборку COM и ее методы используются для многих вычислений и транзакций.

Существует ли какой-либо инструмент, который может идентифицировать объекты [взаимодействия], которые загружены в память, но не выгружены.

Ответы [ 2 ]

1 голос
/ 26 марта 2011

RCW для COM-компонента - это просто управляемый класс.Любой полуприличный .NET профилировщик памяти покажет вам все, на которые ссылаются непреднамеренно.Если сам COM-сервер протекает, вам понадобится тот, который может отслеживать неуправляемую память.Это неизменно требует наличия исходного кода для сервера, чтобы вы могли выяснить, что именно просочилось.И чтобы действительно что-то с этим сделать.

Уже есть много вопросов о профилировщиках памяти .NETВведите «.NET memory profiler» в поле поиска в верхнем правом углу.

0 голосов
/ 26 марта 2011

Попробуйте AQTime profiler, я играю с ним некоторое время, и у него есть хорошие профилировщики для неуправляемых (com) и управляемых приложений, вы можете скачать демоверсию thw здесь: http://smartbear.com/products/development-tools/performance-profiling/sign-up/

...