J'ai utilisé la commande sos suivante pour énumérer toutes les instances d'un type particulier dans une application ASP en cours d'exécution (hébergée sur une machine Windows XP 4 Go).Incompatibilité de taille d'objet renvoyée par sos.dll et taille du processus en mémoire
.foreach (obj { !dumpheap -type ::my type:: -short ::start of address space:: ::end of address space:: }) { !objsize ${obj} }.
Ceci énumère tous les objets du type donné dans gc gen2.
La taille de l'objet semble en moyenne autour de 500 Ko et il y a environ 2000 objets. Cela représente à lui seul environ 1 Go de mémoire alors que ma mémoire de processus asp dans le gestionnaire de tâches ne montre que 700 Mo environ. Un autre point est que je n'ai pas considéré d'autres objets chargés que j'utilise.
De plus, tous les objets ci-dessus sont des objets racine qui ne seront pas collectés. Vous ne savez pas si cette commande est fausse ou s'il y a une autre explication pour cette différence de taille que sos renvoie et ce qui est montré dans le gestionnaire de tâches?
Merci à l'avance,
Bharat K.
Quel compteur regardez-vous dans le Gestionnaire des tâches? –
Btw '! Dh' affiche les en-têtes pour l'image spécifiée. Je suppose que vous voulez dire '! Dumpheap'. –
ouais. c'est! dumpheap. Et j'ai regardé à la fois l'utilisation de la mémoire et l'utilisation maximale de la mémoire dans le gestionnaire de tâches. –