Какой лучший инструмент для проверки утечки памяти в приложении Win32 / COM? - PullRequest
1 голос
/ 05 июня 2009

Я ищу инструмент, который может отслеживать запущенное приложение (Win32 / COM) в течение длительного времени (1-3 дня) и обнаруживать утечки памяти, если таковые имеются. Какие-либо предложения? Это Windows-приложение .NET, которое вызывает много неуправляемого кода.

Ответы [ 6 ]

1 голос
/ 30 января 2011

iJeeves, комбинация профилей памяти BoundsChecker и .NET должна помочь вам в анализе памяти. DevPartner Studio 10.5 выйдет 4 февраля 2011 года с поддержкой 64-битных приложений. В зависимости от объема используемой памяти вашего приложения, вы можете запускать конфигурации сборки x86 с анализом отслеживания памяти для определения ошибок, если вы держите предел виртуального адреса общего процесса 2 ГБ, 3 ГБ, если вы связываете exe с LARGE_ADDRESS_AWARE и запускаете на ОС x64 с дополнительная оперативная память Конфигурация сборки x64 позволит вам подняться настолько высоко, насколько позволяет системная память, по крайней мере, до тех пор, пока вы не начнете пейджинг и производительность не снизится. Вы можете запустить обнаружение ошибок BC для своего собственного кода в процессе .NET, но утечки объектов или удерживаемые ссылки в управляемом коде требуют второго прохода с использованием профилировщика памяти .NET. У нас пока нет однопроходного анализа, который может обрабатывать смешанный код C ++ и .NET с полными трассами смешанного стека, но мы можем обрабатывать управляемый код над строкой, любые PInvokes, которые пересекают линию, и все собственные операции под строкой в ​​два раза. проходит. Бесстыдная вилка: я работаю в команде DevPartner. Ссылки выше, указывающие на microfocus.com, точно соответствуют страницам DevPartner. Ищите DPS 10.5 при его отправке и опустите eval, чтобы убедиться, что он соответствует вашим потребностям.

1 голос
/ 05 июня 2009

Вы можете попробовать Memory Validator

0 голосов
/ 08 июня 2009

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

0 голосов
/ 05 июня 2009

Если вы ищете инструмент Pay $, тогда DevPartner стоит использовать. Имеет обнаружение утечек памяти для управляемого и неуправляемого кода.

0 голосов
/ 05 июня 2009

Раньше я использовал Bounds Checker , но сейчас я использую встроенную библиотеку CRT Micrsoft или создаю свою собственную.

0 голосов
/ 05 июня 2009

AQTime хорошо, я использовал его несколько раз, и это помогло мне с некоторыми хитрыми ошибками.

...