我无法获得像 Windows 任务管理器中显示的那样的“可用”物理内存。无论我在哪里搜索,我最终都会得到“可用的”物理内存,这不是我的意图。
有谁知道如何获得“免费”物理内存?
您可能需要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很有用。
我完全忽略了您需要可用内存,而不是可用内存,所以我的回答是错误的,对不起。但是这个数字并不意味着什么,因为用于缓存的内存会减少,看看 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 使用率的小软件,它是开源的,完全免费的,我应该说是我写的 :)