2011-07-15 11 views

Respuesta

4

MemoryCache tiene un CacheMemoryMonitor interno que periódicamente pregunta a sus referencias qué tan grandes son. Utiliza un tipo interno en mscorlib llamado SizedReference que es una referencia que también realiza un seguimiento de la cantidad de memoria (aproximadamente) que usa su destino.

También recopila varias estadísticas del GC para ayudar a determinar si la presión de la memoria debería provocar que inicie un proceso de desalojo.

+0

Así que, básicamente, esto significa que 'MemoryCache' tendrá una (¿buena?) Idea de todo el gráfico de objetos almacenado en él, ¿verdad? Es seguro asumir que no es tan ingenuo como simplemente sumar los tamaños de referencia de objeto asociados a las teclas de la Hashtable interna que utiliza, ¿no? –

+0

Entonces ... ¿es imposible implementar 'MemoryCache' sin conocer las partes internas de .NET y CLR? – binki

Cuestiones relacionadas