2011-06-16 10 views
7

¿Existe alguna manera en .NET de determinar la cantidad de memoria que se está ocupando el almacenamiento local de subprocesos?Uso de la memoria de almacenamiento local de subprocesos

Específicamente, estoy buscando la cantidad de memoria utilizada por los objetos ThreadStatic y la memoria asignada a los objetos en los espacios de datos de subprocesos (por ejemplo, llamando a Thread.SetData).

Para aclarar:

local de subprocesos de almacenamiento: http://msdn.microsoft.com/en-us/library/6sby1byh.aspx

almacenamiento local de subprocesos: Hilo-relativa campos estáticos y datos ranuras http://msdn.microsoft.com/en-us/library/6sby1byh.aspx

+1

¿Cómo se define "la cantidad de memoria ocupada por el almacenamiento local de subprocesos"? – CodesInChaos

+0

Supongo que las máquinas tragamonedas ocuparán una cantidad muy pequeña de espacio, lo que realmente te interesa es la cantidad de datos en el montón a los que hacen referencia las máquinas tragamonedas, lo que es bastante complicado porque tendrías que caminar un gráfico de objetos. –

+0

@Sam Exactamente lo que estaba buscando. Pero ni siquiera veo una API que me permita enumerar los contenidos de las máquinas tragamonedas. – ender

Respuesta

2

Usted puede obtener el uso de la memoria por el proceso de la siguiente manera . Hay varias otras medidas de memoria que puede usar here. Pero no estoy seguro de si hay una manera de obtener el uso de la memoria por hilo. El proceso tiene Threads property que consiste en una colección de ProcessThread s, que es exactamente lo que le interesa, pero no forma directa de obtener el uso de la memoria.

// Get the current process. 
Process currentProcess = System.Diagnostics.Process.GetCurrentProcess(); 

// Gets the amount of physical memory allocated for the associated process. 
long totalNumberOfBytesUsed = currentProcess.WorkingSet64; 
Cuestiones relacionadas