Использование локальной памяти потока - PullRequest
7 голосов
/ 16 июня 2011

Есть ли в .NET способ определить объем памяти, занимаемый локальным хранилищем потока?

В частности, я ищу, чтобы найти объем памяти, используемой объектами ThreadStatic и памятью, выделенной объектам в слотах данных Thread (например, путем вызова Thread.SetData).

Для уточнения:

Потоковое локальное хранилище: http://msdn.microsoft.com/en-us/library/6sby1byh.aspx

Локальное хранилище потока: относительные к потоку статические поля и слоты данных http://msdn.microsoft.com/en-us/library/6sby1byh.aspx

1 Ответ

2 голосов
/ 16 июня 2011

Вы можете получить использование памяти процессом, как показано ниже.Есть несколько других измерений памяти, которые вы можете использовать здесь .Но я не совсем уверен, есть ли способ получить использование памяти по потокам.Процесс имеет Свойство Threads , которое состоит из набора ProcessThread s, который является именно тем, что вас интересует, но не является прямым способом получить использование памяти.

// 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;
...