sumitk.cadc Ответов: 2

Как получить свободную физическую память операционной системы с помощью C#?


Всем привет,
Я хочу получить свободную физическую память ОС с помощью c#.
я использовал запрос WMI для класса Win32_OperatingSystem, но он не дает точного значения
пожалуйста помогите мне
ТИА

Что я уже пробовал:

ниже приведен мой код

ObjectQuery wql = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wql);
ManagementObjectCollection results = searcher.Get(); 
foreach (var result in results)
{
 amountFree = Convert.ToInt32( result["FreePhysicalMemory"]);
}

2 Ответов

Рейтинг:
1

OriginalGriff

Попробовать это:

ManagementObjectSearcher search = new ManagementObjectSearcher("root\\CIMV2", "Select TotalVisibleMemorySize, FreePhysicalMemory from Win32_OPeratingSystem");

foreach (ManagementObject x in search.Get())
    {

    ulong totalMemory = (ulong)x["TotalVisibleMemorySize"];
    ulong freeMemory = (ulong)x["FreePhysicalMemory"];
    }
freeMemory возвращается в КБ и, похоже, находится примерно в моей системе. Трудно быть точным, потому что система свободной памяти изменяется все время, как процессы выделяют и освобождают память как часть их нормальной деятельности.


Рейтинг:
0

Jochen Arndt

Цитата:
я использовал запрос WMI для класса Win32_OperatingSystem, но он не дает точного значения
Откуда вы знаете, что это не точно?

Может быть две причины, что результат не таков, как ожидалось:

  1. Вы пропустили, что значение находится в килобайтах
  2. При использовании системой предварительной выборки свободной памяти может быть меньше, чем ожидалось (Prefetcher - Википедия[^])


sumitk.cadc

Здравствуйте сэр,
я перепроверяю значения с данными вкладки производительность диспетчера задач.
на самом деле я хочу получить все данные о производительности и сетевых данных.я использую счетчики производительности для этого.

sumitk.cadc

Здравствуйте сэр,
я перепроверяю значения с данными вкладки производительность диспетчера задач.
на самом деле я хочу получить все данные о производительности и сетевых данных.я использую счетчики производительности для этого.