我正在尝试使用win32_OperatingSystem类中的FreePhysicalMemory属性.问题是,它通常只返回几MB的值.显然,考虑到只有Powershell在我的计算机上打开,我有更多的RAM可供我使用.
我使用以下代码:
$test = gwmi win32_OperatingSystem
$test.FreePhysicalMemory
难道我做错了什么?或者我不明白FreePhysicalMemory属性实际返回什么?
谢谢你的帮助.
您能否提供一些其他详细信息,例如您的操作系统,总物理内存以及PowerShell命令的实际输出?
使用win32_OperatingSystem类时要记住的一件事是,FreePhysicalMemory和FreeVirtualMemory的值以KB为单位返回 - 而不仅仅是字节,因此您可能需要额外除以1024.
例如,在我的4GB总物理内存的计算机上(WinXP 32位 - 所以操作系统只能使用~3.5GB),这是我的PowerShell的输出:
$test = gwmi win32_OperatingSystem
# verify the "visible" memory size to the Operating System
$test.TotalVisibleMemorySize
3652840
# check free memory
$test.FreePhysicalMemory
1872828
# divide by 1024 twice, once for KB -> MB, once for MB -> GB
($test.FreePhysicalMemory / 1024) / 1024
1.78606796264648
Run Code Online (Sandbox Code Playgroud)
我有几个应用程序正在运行,但这表明我仍然有大约1.786GB的免费物理内存.我在Win7 x64盒子上验证了这个行为是一样的.
以下是Win32_OperatingSystem WMI类的MSDN参考页面:http://msdn.microsoft.com/en-us/library/aa394239.aspx
猜测一下,您使用的是 Vista 或更高版本?如果是这种情况,则预取器正在消耗可用内存,预取器会尝试自动为经常使用的应用程序在内存中进行分页。
在这些系统上,这不是一般需要关心的事情。他们试图利用可用的内存来使经常使用的应用程序表现良好。
归档时间: |
|
查看次数: |
3105 次 |
最近记录: |