2009-01-17 34 views
3

如何檢查程序,有多少內存我的計劃目前已撥款?如何獲得通過(ASP).NET應用程序編程總分配的內存?

我需要它的ASP .NET應用程序,但我懷疑的解決方案是通用於所有類型的.NET應用程序。理想情況下,獲取當前分配的內存量的操作應該很快,因爲我需要經常查詢它。

編輯: 謝謝您的回答。我將爲此任務使用GC.GetTotalMemory,因爲我需要將它用於ASP .NET應用程序。經過一番試驗後,我確定它足夠快速,準確地滿足我的需求。使用Process'PrivateMemorySize64屬性的建議也可以工作;但正如答案中所指出的那樣,對於ASP.NET應用程序,通常會有多個AppDomain在一個進程中運行。我需要每個AppDomain的內存總數。

回答

6

有一個GC.GetTotalMemory的方法,但這樣只會給你一個近似。這夠了嗎?

如果用GC.GetTotalMemory(false)叫它它會更快...

1

您也可以從Process類調​​用PrivateMemorySize64(或虛擬如果您願意)。但是,請注意,數字已緩存,只有在調用刷新時纔會刷新。

2

而且還注意,asp.net其很常見的一個進程中有一個以上的應用程序。這就限制了PrivateMemorySize64的用處。 GC.GetTotalMemory是每個應用程序域afaik。

相關問題