2011-06-16 17 views
7

İş parçacığı depolaması tarafından alınan bellek miktarını belirlemek için .NET'te bir yol var mı?Yerel depolama belleği kullanımı konusuna git

Özellikle, ThreadStatic nesneleri tarafından kullanılan bellek miktarını ve iş parçacığı veri yuvalarındaki nesnelere ayrılmış belleği (ör. Thread.SetData'yı arayarak) bulmak için arıyorum.

netleştirmek için:

Konu-yerel depolama: http://msdn.microsoft.com/en-us/library/6sby1byh.aspx

Konu Yerel Depolama: İplik Bağıl Statik Alanlar ve Veri Yuvaları http://msdn.microsoft.com/en-us/library/6sby1byh.aspx

+1

"İş parçacığı depolaması tarafından alınan bellek miktarı" nı nasıl tanımlarsınız? – CodesInChaos

+0

Tahminimce, slotlar çok az yer kaplayacak, gerçekten ilginizi çeken şey, slotların referans verdiği yığın miktarındaki veri miktarıdır. bir nesne grafiğini yürütün. –

+0

@Sam Tam olarak aradığım şey. Ancak, yuvaların içeriğini listelememi sağlayan bir API bile göremiyorum. – ender

cevap

2

Sen olarak aşağıda işlem tarafından bellek kullanımını alabilirsiniz . here'u kullanabileceğiniz birkaç başka bellek ölçümü vardır. Ancak, bellek kullanımını iş parçacığıyla almanın bir yolu olup olmadığından emin değilim. Süreç, ProcessThread s koleksiyonundan oluşan ve tam olarak ilgilendiğiniz bir koleksiyondan oluşan, Threads property ürününe sahiptir, ancak bellek kullanımı için doğrudan doğruya bir yol değildir.

// 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; 
İlgili konular