Se ha producido un problema espinoso con nuestra aplicación web aquí. (Asp.net 2.0 Win server 2008)Objeto no basura recolectada, pero no contiene gcroots
Nuestro uso de memoria para el sitio web, crece y crece a pesar de que yo esperaría que permanezca en un nivel bastante estático. (Tenemos una pequeña cantidad de datos que se almacenan en estado).
Queriendo saber cuál es el problema, he ejecutado un System.GC.Collect(); algunas veces, tomó un volcado de memoria y luego cargó este volcado de memoria en WinDbg.
Cuando hago un DumpHeap-Stat obtengo un número excesivamente grande en un tipo particular de memoria.
0000064280580b40 713471 79908752 PaymentOption
así, haciendo un dumpHeap -MT de este tipo, me sale un montón de referencias a objetos. Escogiendo un número aleatorio de estos, hago un! Gcroot y el comando regresa informando que no se mantienen referencias a él.
Para mí, esto es exactamente cuando el GC debe recoger estos elementos, pero por alguna razón se han dejado pendientes.
¿Alguien puede dar una explicación de lo que podría estar pasando?
Estaría interesado en ver si alguna vez resolvió esto ... – womp
Desafortunadamente no. Llegamos a una solución al reciclar el proceso una vez que utilizó más de nGBs de memoria, por lo que permitió otros procesos. Sospecho que es un problema con la fragmentación y la nueva asignación de memoria. Voy a investigar un poco más pronto, así que publicaré una actualización. – Lachmania