Как определить объем памяти, используемой неуправляемым кодом - PullRequest
0 голосов
/ 19 сентября 2008

Я работаю с большой библиотекой COM (ArcObjects) и пытаюсь определить утечку памяти.
Какой самый надежный способ определить объем памяти, используемый неуправляемым кодом / объектами.
Какие счетчики производительности можно использовать?

Ответы [ 2 ]

2 голосов
/ 19 сентября 2008

Используйте UMDH , чтобы получить снимок кучи памяти, запустите его дважды, затем используйте инструменты, чтобы показать все распределения, которые произошли между двумя снимками. Это замечательно помогает вам отследить, какие области могут протекать.

Эта статья объясняется в простых терминах.

Я предлагаю вам использовать CComPtr <>, чтобы обернуть ваши объекты, не забывая, что вы должны освободить его перед передачей в функцию, которая возвращает необработанную ссылку на указатель (поскольку оператор приведения будет использоваться для получения указателя, который затем получает перезаписаны)

0 голосов
/ 19 сентября 2008

Счетчик «Виртуальные байты» для процесса представляет общий объем памяти, зарезервированный процессом. Если у вас есть утечка памяти, это будет иметь тенденцию к росту.

...