Какой инструмент я могу использовать для анализа использования памяти? [закрыто]

У меня есть приложение для Windows, написанное на C ++ с использованием Visual Studio 2008. Я хочу получить статистику использования памяти, чтобы найти узкие места и места для работы с использованием памяти. В идеале я хотел бы иметь инструмент, который делает это без необходимости входить и добавлять логику счетчика / профилирования к самому коду. В основном я ищу:

List of all allocations (freed or not shouldn't matter, I want to know every time something is allocated) Callstack of each allocation and a counter representing the number of times that code was called and memory was allocated. Information on what memory has been freed vs not freed (to find leaks). Ideally it would be intelligent enough to determine if memory is still in use or if it really has leaked (via scope, or some other intelligent mechanism).

Меня не волнует, является ли это бесплатным инструментом или нет. Вот некоторые инструменты, на которые я уже смотрел:

Rational PurifyPlus: Honestly I haven't been able to make much use of this tool. It returns a lot of false positives. Also, it doesn't give me the first 2 items in my list above, it instead seems to only focus on memory errors and leaks. Sysinternals VMMap: This tool is interesting and allows me to see how memory is spread out (stack vs heap vs shared heap, etc). It also lets me see a call tree of allocations but isn't very intuitive or helpful. It's hard to make sense out of the data. DevPartner Boundschecker: I really think this is the most useless tool so far. I used it years ago before they got bought out by DevPartner and I remember it working a lot better. But it doesn't really give me the statistical data I need, nor does it seem to be able to properly detect memory leaks.

Я заранее ценю любую помощь / совет. Мое приложение является сервером, и со временем у него возникают серьезные проблемы с ростом памяти во время стресс-тестирования (и в конечном итоге происходит сбой из-за того, что виртуальные байты превышают ограничение для 32-разрядных приложений). Наличие правильного инструмента поможет мне определить, где мы выделяем память, а также где у нас может быть утечка памяти.

Ответы на вопрос(5)

Ваш ответ на вопрос