Почему FreePhysicalMemory дает неверное значение? - PullRequest
4 голосов
/ 10 июня 2011

Я пытаюсь использовать свойство FreePhysicalMemory из класса win32_OperatingSystem. Проблема в том, что обычно он возвращает значение всего в несколько МБ. Очевидно, у меня больше оперативной памяти, учитывая, что на моем компьютере открыта только Powershell.

Я использую следующий код:

$test = gwmi win32_OperatingSystem
$test.FreePhysicalMemory

Я что-то не так делаю? Или я не понимаю, что на самом деле возвращает свойство FreePhysicalMemory?

Спасибо за помощь.

Ответы [ 2 ]

7 голосов
/ 10 июня 2011

Не могли бы вы предоставить некоторые дополнительные сведения, такие как операционная система, общий объем физической памяти и фактический вывод команды PowerShell?

При использовании класса win32_OperatingSystem следует помнить следующее:значения для FreePhysicalMemory и FreeVirtualMemory возвращаются в килобайтах, а не только в байтах, поэтому у вас может быть дополнительное деление на 1024.

Например, на моем компьютере с общей физической памятью 4 ГБ (32-разрядная WinXP - такОС может использовать только ~ 3,5 ГБ), вот вывод из моей 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

У меня запущено несколько приложений, но это показывает, что у меня все еще остается примерно 1,786 ГБ свободной физической памяти.Я проверил, что это поведение идентично и на моем Windows 7 x64.

Вот справочная страница MSDN для класса WMI Win32_OperatingSystem: http://msdn.microsoft.com/en-us/library/aa394239.aspx

0 голосов
/ 10 июня 2011

Как вы думаете, вы используете Vista или новее?Если это так, то свободная память используется предварительным считывателем, который пытается выполнить поиск в памяти автоматически для приложений, которые регулярно используются.на этих системах.Они пытаются использовать доступную память, чтобы заставить регулярно используемые приложения работать хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...