Pregunta

Me he quedado atrapado en un problema con gflags cuando se trata de encontrar algunas pérdidas de memoria en una aplicación de Windows.

Cuando enciendo el UST de la bandera (con el fin de recoger las asignaciones de memoria trazas de la pila) la memoria de mis aplicación aumenta mucho más rápido que lo hace cuando el indicador está apagado (que llega a 800 MB en 10 min aprox., que está lejos de la 50-100MB / día consigo cuando la bandera está apagado).

He leído que hay un máximo de seguimientos de pila de 32 MB, así que supongo que esto no debería ser un problema.

El equipo es un 4x Intel (R) Xeon (R) CPU E5410 @ 2.33GHz .

Si alguien me podría dar algún indicio que agradecería mucho.

Gracias!

¿Fue útil?

Solución

La base de datos de seguimiento de la pila no es el único impacto de la bandera ust. También se suma al menos 32 bytes a cada asignación, con el fin de almacenar su ID de seguimiento de la pila. Esto podría explicar el aumento de memoria si se trata de un montón de pequeñas asignaciones. Si inicia el proceso con un depurador asociado o compilado el proceso con destino de depuración, los montones Windows se establecerá en el modo de depuración y de la sobrecarga por la asignación será aún más grande.

Otros consejos

Puede establecer el tamaño máximo de la base de datos de rastreo mediante / tracedb SizeInMB Vea la de MSDN documentación gflags de pelos y señales. Por defecto no hay un tamaño máximo que muy probablemente explica el comportamiento que has visto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top