Encontrar la verdadera huella de memoria de una aplicación de Windows

Me he encontrado con algunas OutOfMemoryExceptions con mi aplicación C # / WPF y me encuentro con algunos datos confusos al intentar perfilar el uso de la memoria.

Cuando la aplicación normalmente se está ejecutando, el Administrador de tareas de Windows muestra el uso de memoria en algún lugar alrededor de 34 MB (rebota ligeramente a medida que se crean objetos y se recolecta basura). Cuando ejecuto aplicaciones de creación de perfiles de memoria comoCLR Profiler ydotTrace Memory, muestran el uso total de memoria en alrededor de 1,2 MB.

¿Por qué esta gran discrepancia? ¿Qué ve el Administrador de tareas que estos perfiladores no?

ACTUALIZAR Agregué un código de diagnóstico a mi aplicación para imprimir varias informaciones de memoria de vez en cuando a través de la clase Process.

Mientras ejecuto mi aplicación, configuré una regla en DebugDiag para realizar un volcado de memoria en caso de una excepción. Forcé una excepción y se produjo el volcado de memoria. En este punto, el uso de memoria de mi aplicación (como lo muestra el administrador de tareas) saltó de 32 MB a 145 MB y permaneció allí.

Puede ver este salto en la tabla a continuación (WorkingSet64). Todavía estoy tratando de entender todos los tipos de información de memoria que proporciona la clase Process. ¿Cómo haría una aplicación externa para que el conjunto de trabajo de mi aplicación creciera así?

Enlace a la tabla de datos aquí.