¿Qué herramienta puedo usar para analizar el uso de la memoria? [cerrado]

Tengo una aplicación de Windows escrita con C ++ con Visual Studio 2008. Quiero obtener estadísticas sobre el uso de la memoria para encontrar cuellos de botella y ubicaciones para trabajar en el uso de la memoria. Idealmente, me gustaría tener una herramienta que haga esto sin tener que ingresar y agregar lógica de contador / perfil al propio código. Básicamente lo que busco es:

Lista de todas las asignaciones (liberadas o no, no debería importar, quiero saber cada vez que se asigna algo)La pila de llamadas de cada asignación y un contador que representa la cantidad de veces que se llamó al código y se asignó la memoria.Información sobre qué memoria se ha liberado vs no liberado (para encontrar fugas). Idealmente, sería lo suficientemente inteligente como para determinar si la memoria todavía está en uso o si realmente se ha filtrado (a través del alcance, o algún otro mecanismo inteligente).

No me importa si es una herramienta gratuita o no. Aquí hay algunas herramientas que ya he visto:

Rational PurifyPlus: Sinceramente, no he podido hacer mucho uso de esta herramienta. Devuelve muchos falsos positivos. Además, no me da los primeros 2 elementos de mi lista anterior, en cambio, parece que solo se enfoca en los errores de memoria y las fugas.Sysinternals VMMap: Esta herramienta es interesante y me permite ver cómo se distribuye la memoria (pila vs pila vs pila compartida, etc.). También me permite ver un árbol de llamadas de asignaciones, pero no es muy intuitivo ni útil. Es difícil dar sentido a los datos.DevPartner Boundschecker: Realmente creo que esta es la herramienta más inútil hasta ahora. Lo usé hace años antes de que DevPartner los comprara y recuerdo que funcionó mucho mejor. Pero realmente no me da los datos estadísticos que necesito, ni parece ser capaz de detectar adecuadamente las fugas de memoria.

Agradezco de antemano cualquier ayuda / consejo. Mi aplicación es un servidor y sufre serios problemas de crecimiento de memoria a lo largo del tiempo durante las pruebas de estrés (y eventualmente se bloquea debido a que los bytes virtuales exceden el límite para aplicaciones de 32 bits). Tener la herramienta adecuada me ayudará a aislar dónde estamos asignando memoria y también dónde podríamos estar perdiendo memoria.

Respuestas a la pregunta(5)

Su respuesta a la pregunta