Выпускаете ли вы COM-объект после использования (Marshal.ReleaseComObject
)?
Какой тип параметров вы передаете в / из вызовов?
Если у вас нет исходного кода COM-объекта и вы хотите определить причину его «утечки», запустите COM-объект outa proc, подключите WinDBG к процессу и установите точки останова в API-интерфейсах выделения памяти (HeapAlloc и т. ). Посмотрите на стек вызовов и шаблоны распределения. Конечно, вы можете использовать профилировщики на управляемой стороне, но если вы хотите знать, что происходит, вам придется испачкать руки ...