0

我无法获得像 Windows 任务管理器中显示的那样的“可用”物理内存。无论我在哪里搜索,我最终都会得到“可用的”物理内存,这不是我的意图。

有谁知道如何获得“免费”物理内存?

4

2 回答 2

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很有用。

于 2012-05-01T07:37:04.513 回答
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 任务管理器完全相同,请查看我对类似问题的回答:

C# 以 % 为单位获取已用内存

或者下载Top Process的源代码,这是一个显示可用内存和 CPU 使用率的小软件,它是开源的,完全免费的,我应该说是我写的 :)

于 2012-05-01T07:48:30.097 回答