Работа с процессами на C#

321
01 августа 2021, 10:30

Как получить объём используемой оперативной памяти текущих процессов?

Answer 1

Если нужно узнать количество физической памяти, то необходимо использовать WorkingSet64, что дает «объем физической памяти, выделенной для соответствующего процесса.» Также можно использовать PeakWorkingSet64, что дает «максимальное количество физической памяти, используемой для соответствующего процесса»

Все процессы:

Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
    string memoryUse = (p.WorkingSet64 / 1024).ToString();
    Console.WriteLine($"Process ID: {p.Id}, Process Name: {p.ProcessName}, Memory usage: {memoryUse}");
}

Определенный процесс:

Process[] name = Process.GetProcessesByName("MyProcessName");
foreach (Process p in name)
{
    string memoryUse = (p.PagedMemorySize64 / 1024).ToString();
    Console.WriteLine($"Memory usage: {memoryUse}");
}
Answer 2

Если нужно узнать общее использование памяти:

Process[] processes = Process.GetProcesses();
int memoryUse = 0;
foreach (Process p in processes)
{
    memoryUse += p.PagedMemorySize64 / 1024;
}
Console.WriteLine($"PC Memory usage: {memoryUse}");

Если нужны юзеджи каждого отдельного процесса то использовать ответ MiT

READ ALSO
Изменение стилей при сравнении ворд документов c#

Изменение стилей при сравнении ворд документов c#

Возникла необходимость реализовать версионность вордовских документовС помощью Interop

134
Mysql и периоды дат - как не превысить квоту?

Mysql и периоды дат - как не превысить квоту?

Максимально упрощенно опишу вопрос:

314
Каким должен быть запрос для сортировки дат?

Каким должен быть запрос для сортировки дат?

Как выполнить сортировку дат используя только ORDER BY в следующем порядке:

205
Получить данные разных столбцов как один

Получить данные разных столбцов как один

У меня есть таблица, в которой храниться first_id и second_id, это айди пользователей которые между собой дружат, и мне нужно для пользователя по определенному...

128