2012-03-09 61 views
1

如何獲取當前程序集的大小在內存中?獲取當前程序集的大小在內存中

這是卓有成效的一次:

while (System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 < 1 gigabyte) 

但它不改變,即使裝配在內存中成長的價值。

我在這裏錯過了什麼?

+2

我從來沒有在C#中看到過「1千兆字節」的字面意思。你確定這是真實的代碼嗎? – 2012-03-09 22:35:54

+2

「內存中當前程序集的大小」的含義是什麼?從來沒有聽說過這樣的事情。內存中的程序集的大小是多少,更重要的是你爲什麼期望這個值會改變?在.NET中,CLR分配對象的實例。這是那些消耗內存的實例。你在問什麼?如果是的話,讓我們考慮以下情況:程序集調用分配內存的非託管C++組件 - >是否也要考慮此內存? – 2012-03-09 22:36:49

+0

你的意思是組件的當前內存使用情況? – TheBoyan 2012-03-09 22:37:42

回答

1

取而代之的是PrivateMemorySize64,請使用WorkingSet64VirtualMemorySize64,具體取決於您是指「當前在內存中」還是「總內存量」。

WorkingSet64爲您提供當前機器RAM中的字節數。

VirtualMemorySize64爲您提供進程地址空間中的字節數。這包括當前在RAM中的字節以及交換到磁盤的字節。

+0

謝謝你的工作! – Yustme 2012-03-10 11:18:51

相關問題