我无法获得"免费"物理内存,如Windows任务管理器中显示的那样。在我搜索的每个地方,我最终得到了"可用"物理记忆,这不是我的意图。
有谁知道如何获得" Free"物理记忆?
答案 0 :(得分:2)
您可能需要GlobalMemoryStatusEx功能。有关从C#中使用它的示例,请参阅http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/01371e94-0ef4-43a8-9fcb-f3ec40e8675e/。
您可能还会发现http://www.pinvoke.net/default.aspx/kernel32.globalmemorystatusex有用。
答案 1 :(得分:0)
我完全忽略了你需要空闲内存,而不是可用内存,所以我的回答是错误的,对不起。但是这个数字并不意味着什么,因为用于缓存的内存将减少,请参阅windows vista,7内存管理器如何工作:
http://www.codinghorror.com/blog/2006/09/why-does-vista-use-all-my-memory.html
你可以使用GetPerformanceInfo windows API,它显示与Windows 7上的Windows任务管理器完全相同的值,看看我在类似问题上的答案:
或下载Top Process的源代码,这是一个显示可用内存和CPU使用率的小软件,它是开源的,完全免费的,我应该说我写了它:)