2

Я полагал, что обе терминологии представляют одну и ту же вещь, однако я вижу разные значения и заставляет задуматься: «Общая физическая память = ОЗУ + что-то?»

Вывод полной физической памяти с использованием "wmic ComputerSystem get TotalPhysicalMemory" 8458973184

Информация ОЗУ с системной страницы Windows

Мне нужно следить за оперативной памятью и другой системной информацией, такой как процессор, поэтому она надежна или имеет что-то хорошее.

2 ответа2

2

Счетчик WMIC "TotalPhysicalMemory" является подмножеством установленной оперативной памяти, которую Windows может использовать как обычную оперативную память. Другими словами, это число, по которому вы должны оценивать числа, как рабочий набор процесса. Он также вносит свой вклад в ограничение системного коммита (другим является текущий размер файла подкачки).

Это исключает то, что диспетчер задач называет "аппаратное обеспечение зарезервировано". В основном это оперативная память, к которой невозможно получить доступ, поскольку ее адреса конфликтуют с адресами встроенного программного обеспечения, "регистрового пространства", определенного устройствами ввода-вывода, и тому подобным. Это является причиной большей части несоответствия между 8 ГиБ, которые вы купили и установили, по сравнению с сообщенным WMIC "Всего".

Поскольку в вашем комментарии вы упомянули "бесплатно", я должен упомянуть, что счетчик WMIC Win32_operatingsystem.FreePhysicalMemory соответствует отображению диспетчера задач "Доступно". Это объем оперативной памяти, который сразу же доступен для использования, чтобы удовлетворить жесткие сбои страниц для новых выделений, без извлечения его из процесса, который его использует, и без необходимости сначала копировать любое старое содержимое, например, в файл подкачки или в отображенный файл. Это сумма того, что Resource Monitor отображает как "Резервный" и "Свободный". (Да, их терминология противоречива - я бы сказал, непростительно.)

Вы можете получить сумму "используется" просто вычитая Win32_operatingsystem.FreePhysicalMemory от Win32_computersystem.TotalPhysicalMemory.

-3

Программисты Microsoft не очень сильны в математике:

8 GB = 8 589 934 592
7.88 GB = 8 461 085 573
TotalPhysicalMemory = 8 458 973 184
8 GB - TotalPhysicalMemory = 8589934592 - 8458973184 = 130 961 408

Здесь мы видим, что программист Microsoft, выпустивший цифру 7,88 ГБ, округлил ее, создав, таким образом, около 130 МБ памяти, которой просто не существует, потому что это доля очень большого числа, гигабайт. Было бы правильнее округлить его, что было бы безопаснее для вычислений и лучшей математики, или даже добавить больше десятичных разрядов, что уменьшило бы ошибку округления.

Вы можете запустить команду systeminfo | findstr Memory чтобы получить еще больше чисел.

Описание TotalPhysicalMemory гласит:

Общий объем физической памяти. Имейте в виду, что при некоторых обстоятельствах это свойство может не возвращать точное значение для физической памяти. Например, не совсем верно, использует ли BIOS часть физической памяти. Для точного значения используйте свойство Capacity в Win32_PhysicalMemory.

Так что вы можете использовать wmic, но на самом деле неясно, что вы получаете. По крайней мере, TotalPhysicalMemory кажется наименьшим числом среди всех тех, что я нашел, так что его можно было бы безопасно использовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .