Pregunta

Necesito verificar cuánta memoria se asigna en el montón. ¿Hay una manera de obtener este valor programáticamente con C #?

Sé sobre System.Runtime.InteropServices.Marshal.SizeOf (...) pero eso solo me dice el tamaño de un objeto.

¿Fue útil?

Solución

Utilizando un PerformanceCounter puede consultar el " ; # Bytes en todos los montones " ;, desde su propio proceso, e incluso otros procesos.

Utilice la categoría " .Net CLR Memory " para ver un montón de contadores disponibles.

Debe ver cuál es la diferencia entre la carga del sistema entre el PerformanceCounter y el GC.GetTotalMemory propuesto por Jon Skeet.

Otros consejos

Hace GC.GetTotalMemory hace todo lo que necesita?

(Tenga en cuenta que SizeOf solo le indica el tamaño de marshalled , no necesariamente el tamaño de la memoria).

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