Я ищу инструмент, который может отслеживать запущенное приложение (Win32/COM) в течение длительного времени (1-3 дня) и обнаруживать утечки памяти, если таковые имеются. Какие-либо предложения? Это приложение .NET Windows, вызывающее множество неуправляемого кода.Какой лучший инструмент для проверки утечки памяти в приложении Win32/COM?
ответ
Вы можете попробовать Memory Validator
AQTime хорошо, я использовал его несколько раз, и это помогло мне трудно обнаруживаемых ошибок.
Раньше я использовал Bounds Checker, но в настоящее время я либо использую Micrsoft inbuilt CRT library, либо создаю свой собственный.
Если вы ищете инструмент оплаты $ 0, то стоит DevPartner. У этого есть обнаружение утечки памяти для управляемого и неуправляемого кода.
Application Verifier является бесплатным и из Microsoft. Он обнаруживает утечки памяти, двойные разряды, перезаписывает и многое другое. Я использую его все время, и это помогло мне выявить некоторые неприятные проблемы.
iJeeves, сочетание профилей BoundsChecker и .NET, должно помочь вам в анализе вашей памяти. DevPartner Studio 10.5 отправляется 4 февраля 2011 года с поддержкой 64-разрядных приложений. В зависимости от области загрузки необработанной памяти вы можете запускать конфигурацию сборки x86 с анализом отслеживания памяти дефектов ошибок до тех пор, пока вы держитесь ниже предела виртуального адреса всего 2gb, 3gb, если вы связываете exe с LARGE_ADDRESS_AWARE и запускаете на x64 OS с дополнительная оперативная память. Конфигурация сборки x64 позволит вам подняться настолько высоко, насколько позволяет ваша оперативная память, по крайней мере, до тех пор, пока вы не начнете пейджинг и производительность не остановится. Вы можете запустить dc dc для вашего собственного кода в .NET-процессе, но утечка объектов или поддерживаемые ссылки в управляемом коде требуют второго прохода с использованием профилировщика .NET. У нас еще нет единого анализа прохода, который может обрабатывать смешанный код C++ и .NET с полными смешанными трассировками стека, но мы можем обрабатывать управляемый код над линией, любые PInvokes, которые пересекают линию, и все собственные активности ниже строки в двух проходит. Бесстыдный плагин: я работаю над командой DevPartner. Ссылки выше, указывающие на microfocus.com, решительно разрешают страницы DevPartner. Ищите DPS 10.5, когда он отправляется и сбрасывает Eval, чтобы увидеть, соответствует ли он вашим потребностям.
Вы хотите обнаружить утечки памяти в неизмененном коде или хотите обнаружить утечки памяти в приложении .Net (утечка неуправляемых ресурсов - неправильное удаление и т. Д.)? – RobS
Я ищу оба, но в основном в неуправляемом коде. – devnull