Question

Je suis resté coincé dans un problème avec gflags en essayant de trouver des fuites de mémoire dans une application Windows.

Quand je tourne sur le ust drapeau (afin de recueillir des allocations de mémoire traces de pile) la mémoire de mes application augmente beaucoup plus vite qu'il fait quand le drapeau est éteint (il atteint 800 Mo en 10 min aprox. qui est loin de la 50-100MB / jour, je reçois quand le drapeau est éteint).

J'ai lu qu'il ya un maximum de traces de pile de 32 Mo, donc je suppose que cela ne devrait pas être un problème.

L'ordinateur est un 4x Intel (R) CPU E5410 @ Xeon (R) 2,33 GHz .

Si quelqu'un pouvait me donner un indice que je voudrais vraiment l'apprécier.

Merci!

Était-ce utile?

La solution

La base de données de trace de la pile ne sont pas le seul impact de l'indicateur de ust. On ajoute également au moins 32 octets pour chaque attribution, afin de stocker l'identifiant de trace de la pile. Cela pourrait expliquer l'augmentation de votre mémoire si beaucoup de petites allocations sont impliqués. Si vous lancez le processus avec un débogueur attaché ou compilé avec le processus cible de débogage, les tas de fenêtres seront réglées en mode débogage et les frais généraux par l'allocation sera encore plus grande.

Autres conseils

Vous pouvez définir la taille de la base de données de trace maximale en utilisant / tracedb SizeInMB Voir MSDN documentation GFlags pour le chapitre et le verset. Par défaut, il n'y a pas de taille maximale qui explique probablement le plus le comportement que vous avez vu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top