Encontrar fugas de memoria en la aplicación C #

Tengo una aplicación en C #, Framework 4. Muy básicamente, esta aplicación reacciona principalmente ante eventos y crea objetos, los libera, crea una conexión de base de datos y los cierra.

Ahora, hemos estado viendo que el proceso de la aplicación crece a veces de maneras muy extrañas. Tenemos dos comportamientos diferentes:

La aplicación crece hasta alcanzar 4 GB de RAM cuando, por lo general, "debería" mantenerse en alrededor de 500 MB. Consecuencia -> se estrella!La aplicación crece lentamente hasta 1200 MB (30 minutos) y luego se reduce abruptamente a 500 MB (en un segundo) ... y este proceso se repite de vez en cuando. ¿Puede ser este recolector de basura en acción?

Ahora, para proporcionarnos más información sobre la aplicación, me gustaría agregar en nuestros archivos de registro el tamaño del proceso de la aplicación. ¿Es posible a través del framework nativo? ¿Es posible saber el tamaño de un objeto en C #?

¡También encontré la aplicación NetMemoryProfiler4 pero preferiría usar el registro integrado si es posible!

Respuestas a la pregunta(2)

Su respuesta a la pregunta